Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:ansible

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
wiki:ansible [2023/01/13 13:00] – [Nur auf einer Gruppe] techguruwiki:ansible [2024/04/07 12:38] (aktuell) – [Poweroff] pulsar
Zeile 1: Zeile 1:
- 
 ====== Ansible ====== ====== Ansible ======
  
Zeile 14: Zeile 13:
 ===== System Einrichtung ===== ===== System Einrichtung =====
  
-Zunächst ist das Paket ''sshpass'' zu installieren. Da Ansible default SSH keys verwendet, aber bei der Ersteinrichtung zunächst den Nutzer pi verwendet und hier SSH Passwort Authentifizierung genutzt wird.+Auf dem Ansible Kommando Rechner ist das Paket ''ansible'' sowie ''sshpass'' zu installieren. Da Ansible default SSH keys verwendet, aber bei der Ersteinrichtung zunächst den Nutzer pi verwendet und hier SSH Passwort Authentifizierung genutzt wird.
  
-  apt install sshpass+  apt install ansible sshpass
  
-Ausserdem ist ein Passwort Hash z.B. mit Python zu erzeugen. Wie das funktioniert ist auf der [[:systemadmin|systemadmin]] Seite beschrieben. Dieser Hash enthält das verschleierte Passwort  +Zuvor wurde ein Passwort Hash z.B. mit Python erzeugt. Wie das funktioniertist auf der [[:systemadmin|systemadmin]] Seite beschrieben. Dieser Hash enthält das verschleierte Passwort  
-für den neuen zu erstellenden backup Benutzer.+für den neuen zu erstellenden backup Benutzer. :!: Dieser Hash ist im Start-playbook enthalten, daher muss dieser Schritt i.d.R. nicht mehr ausgeführt werden. :!:
  
 Mit ''-k'' kann das Passwort für dem im Playbook angegebenen Remote Benutzer eingegeben werden. Diesen Benutzer verwenden wir nur für die erst Einrichtung. Mit ''-k'' kann das Passwort für dem im Playbook angegebenen Remote Benutzer eingegeben werden. Diesen Benutzer verwenden wir nur für die erst Einrichtung.
  
-Konfigurations Ordner aus Sicherung in das neue Ansible Master System rüber kopieren. Im Start-playbook sollten alle Pfade und Dateien(z.B. ssh-key) zum Konfigurations-Ordner verweisen. Nun kann man das Start-playbook +Konfigurations Ordner aus Sicherung in das neue Ansible Master System rüber kopieren. Im Start-playbook sollten alle Pfade und Dateien(z.B. ssh-key) zum Konfigurations-Ordner verweisen.  
-zunächst nur auf den neuen Ansible Master System ausführen:+ 
 +=== Ansible Ersteinrichtung für ein entferntes System === 
 +Folgenden Kommando nur wenn Ansible Ersteinrichtung für ein entferntes System durchgeführt werden soll. Start-playbook auf dem Ansible Master System ausführen für das iglu Remote-System:
  
   ansible-playbook -k -i /home/pi/xy/Konfiguration/ --limit iglu Start-playbook.yml   ansible-playbook -k -i /home/pi/xy/Konfiguration/ --limit iglu Start-playbook.yml
Zeile 31: Zeile 32:
  
   ansible-playbook --limit iglu Start_playbook.yml -k   ansible-playbook --limit iglu Start_playbook.yml -k
-   
-am besten den Hostnamen noch offen lassen, damit einfacher und universeller einsetzbar 
  
-  ansible-playbook start_sshlogin.yml -k+=== Ansible Ersteinrichtung === 
 +Die Angabe des Hostnamen kann weglassen werden wenn im playbook der hostname, z.B. localhost schon bei hosts: drin steht. Da das Playbook aber nicht nur auf dem Ansible Kommando Rechner ausgeführt werden soll sondern für jeden Host eingesetzt wird, steht bei hosts: all. Hier kann man beim Ausführen des Playbooks mit --limit dann angeben auf welchen Host es aktuell ausgeführt werden soll. 
 + 
 +  ansible-playbook -k --limit iglu start_sshlogin.yml
  
 <code php> <code php>
Zeile 67: Zeile 69:
 </code> </code>
  
 +Nach der Ausführung des ''Start_playbook.yml'' ist der neue Backup Nutzer angelegt. Als diesen kann man sich nun anmelden und der ''/home/pi/xy/Konfiguration/'' sollte zum neuen Ansible Kontroll-Nutzer **verschoben** werden.
 +
 +Neu:
 +In das Verzeichnis ''/home/tux/Dokumente/Konfiguration/Ansible/'' wechseln. Hier das ''ansible-playbook'' Kommando für das gewünschte Playbook ausführen. Da hier die ansible.cfg liegt und diese automatisch genutzt wird, wenn man sich im selben Pfad befindet:
 +
 +  ansible-playbook hauptkonfig.yml
 +
 +
 +Alt:
 +Ausserdem ist die ''ansible.cfg'' und das Inventory(hosts) nach ''/etc/ansible/'' zu **kopieren**. 
 +Es ist darauf zu achten, dass die Berechtigungen für ''/etc/ansible/'' nur für den neuen Ansible Kontroll-Nutzer lesend und maximal schreibend sind.
  
  
Zeile 76: Zeile 89:
  
  
-==== Updates für alle Systeme ====+ 
 +==== Updates für Suse ==== 
 + 
 +  ansible localhost -m zypper -a "update_cache=yes state=latest name='*'" --become -K 
 + 
 + 
 +==== Updates für alle Debian Systeme ====
  
 Alle Rechner im Netzwerk gleichzeitig mit Updates versorgen. Dafür braucht man kein extra Playbook schreiben, hier reicht auch ein Ad-Hoc Kommando. Alle Rechner im Netzwerk gleichzeitig mit Updates versorgen. Dafür braucht man kein extra Playbook schreiben, hier reicht auch ein Ad-Hoc Kommando.
Zeile 83: Zeile 102:
  
   ansible all -m shell -a "sudo apt update && sudo apt autoremove && sudo apt upgrade -y"   ansible all -m shell -a "sudo apt update && sudo apt autoremove && sudo apt upgrade -y"
- 
      
 Im nächsten Aufruf wird das Ansible ''apt'' Modul verwendet, dies ist der von Ansible empfohlene Weg: Im nächsten Aufruf wird das Ansible ''apt'' Modul verwendet, dies ist der von Ansible empfohlene Weg:
Zeile 89: Zeile 107:
   ansible all -m apt -a "update_cache=yes upgrade=yes autoremove=yes cache_valid_time=86400" --become   ansible all -m apt -a "update_cache=yes upgrade=yes autoremove=yes cache_valid_time=86400" --become
      
 +Anzeigen der SCSI Harddisk ID und der dazugehörigen Mountpunkte, dann ein grep (Filtern) nach einem bestimmten Mountpunkt.
 +
 +  ansible all -i inventories/produktion/ -m shell -a "lsblk --output HCTL,PATH,MOUNTPOINT,PARTLABEL|grep -iC2 oraexp"
      
 ==== Nur auf einer Gruppe ==== ==== Nur auf einer Gruppe ====
  
-Kommando auf einer bestimmten Gruppe(in separater Inventory-Datei ''testing'') von Maschinen ausführen.+Kommando nur auf den Rechnern in einer bestimmten Inventory-Datei ''testing'' ausführen.
  
   ansible all -i inventory-Lager/testing -a "/root/agentinstall.sh --uninstall --clean" --become   ansible all -i inventory-Lager/testing -a "/root/agentinstall.sh --uninstall --clean" --become
Zeile 101: Zeile 122:
      
      
-==== Poweroff ==== +==== Reboot und Poweroff ====
-Alle Maschinen ausschalten. Achtung! Auch den Host von wo der Kommando ausgeführt wird wenn in all enthalten:+
  
-  ansible all -a "/sbin/poweroff" --become+Nur den Rechner iglu neu-starten: 
 + 
 +  ansible iglu -a "/sbin/reboot" --become
      
 +Alle Maschinen ausschalten. Achtung! Auch den Host von wo aus der Kommando ausgeführt wird, wenn in all enthalten:
 +
 +  ansible all -a "/sbin/poweroff" --become
 +
    
  
wiki/ansible.1673611219.txt.gz · Zuletzt geändert: 2023/01/13 13:00 von techguru