Begriff | Erklärung |
---|---|
Facts | Eigenschaften eines Systems. Können über das „setup“-Modul aufgelistet werden. Gegen diese kann gematcht werden um Befehle zum Beispiel nur auf Maschinen mit bestimmten Eigenschaften auszuführen. |
Inventory | Liste aller Hosts, ggf. gruppiert um sie als Gruppe anzusprechen |
Tasks | Aufruf eines Moduls um eine bestimmte Aufgabe durchzuführen |
Playbook | Sammlung von Tasks die als ein Satz ausgeführt werden |
Roles | Roles erlaubt es mehrere Playbooks zu einer Rolle zusammenzufassen. Dadurch lassen sich Playbooks thematisch aufteilen, gleichzeitig aber zusammenfassen.0 Die Roles können wiederum in anderen Playbooks genutz werden. Sinnvoll zum Beispiel um Systeme aufzusetzen → ein System kann dabei mehrere Rollen haben z.B. Basissystem + Webserver + Datenbankserver die jeweils in eigenen Rollen definiert werden können |
Syntax:
ansible <Host-Gruppe> -i Hostdatei -u <Login-User> -m <Modul> -a "<Optional Argumente>" -b
ansible-playbook <Play-Book> -i <Pfad zur Host-Datei> -u <Einloogen als>
- name: <Beschreibung des Plays> hosts: <Liste der Hosts für die das Play ausgeführt werden soll> vars: <variable1>:<wert1> <variable2>:<wert2> remote_user: <username> tasks: - name: <taskname> <modulename>: <Moduleparameter>:value
Einige Keywords auf dieser Ebene:
Keyword | Bedeutung |
---|---|
remote-user | Als welcher Benutzer sich auf dem Remote-System eingeloggt wird |
become | Werde root nach dem Login. Wert: yes |
tasks: - name: <somename> <modulename>: <parameter1>: <value1> <parameter2>: <value2> - name: <somename> <modulname>: <parameter1>: <value1> <parameter2>: <value2> notify: <handler-Name der Benachrichtigt werden soll>
Auch wenn Tasks mit Name beginnt, so ist der ganze Abschnitt ein gemeinsamer Listeneintrag, bestehend aus einem Dictionary mit mehreren Keys, „name“ ist nur ein Key in diesem Dictionary und könnte auch an einer beliebigen anderen Stelle im Dictionary stehen.
Dienen dazu nach dem alle Tasks durch sind notwendige Dinge zu tun: wie Neustarts von Services usw.
tasks: - name: <somename> <modulename>: <parameter1>: <value1> <parameter2>: <value2> - name: <somename> <modulname>: <parameter1>: <value1> <parameter2>: <value2> notify: <somename> handlers: - name: <somename> <modulname>: <parameter1>: <value1> <parameter2>: <value2>
Der Handler wird oben im zweiten Task aufgerufen (die notify-Zeile).
In der Handler-Konfiguration existiert dann ein Handler mit dem entsprechenden Namen.
Die Handler-Konfiguration entspricht ansonstem der eines Tasks.
Sammelt alle bekannten Facts über die entsprechende Maschine.
Das kann später benutzt werden um nur bestimmte Maschinen (auf die bestimmte Facts zutreffen) anzusprechen.
Ping die Maschinen die angegeben wurden
Gruppen:
[Gruppenname] Einträge
Variablen-Sektionen:
[Gruppenname:vars] Variable=Wert
Roles erlaubt es mehrere Playbooks zu einer Rolle zusammenzufassen.
Dadurch lassen sich Playbooks thematisch aufteilen, gleichzeitig aber zusammenfassen.0
Die Roles können wiederum in anderen Playbooks genutz werden.
Sinnvoll zum Beispiel um Systeme aufzusetzen → ein System kann dabei mehrere Rollen haben z.B. Basissystem + Webserver + Datenbankserver die jeweils in eigenen Rollen definiert werden können.
Option | Beschreibung |
---|---|
-k / –ask-pass | Normalerweise erwartet ansible das ssh-Login per Key funktioniert. Die Option sorgt dafür das dass Passwort abgefragt wird |
-b / –become | Nach dem Login via ssh, führe die Befehle mit sudo aus |
-K / –ask-become-pass | Im Zusmmenhang mit sudo (Option -b) - Frage interaktiv nach dem sudo-Passwort |