Dies ist eine alte Version des Dokuments!
Begriff | Beschreibung |
---|---|
Controller | Der Rechner auf dem Ansible läuft |
Managed Hosts/Inventory Hosts | Die Rechner auf denen Aktionen ausgeführt werden |
Plugins | Erweiterungen von Ansible |
Inventory | Liste von Maschinen, fix als Datei oder dynamisch erstellt |
Playbook | Eine Sammlung von Plays aka. Scripten |
Plays | Einzelne Scripte |
Tasks | Einzelne Aufgaben innerhalb eines Plays |
Modules | Eine Aufgabe die im Rahmen eines Tasks ausgeführt wird Praktisch handelt es sich um parametrisierte Scripte in Python, oder PowerShell oder einer anderen Sprache geschrieben |
[defaults] inventory = ./inventory remote_user = myuser ask_pass = false [privilege_escalation] become = True become_ask_pass = False become_user = root become_method = sudo
Als ini-Datei:
10.1.55.13 [Mailserver] mail1.somewhere.de mail2.somewhere.de [DNSServer] ns1.somewhere.de ns2.somewhere.de [webserver] web[1:10].somweher.de [production:children] DNSServer Mailserver [debianserver] mail1.somewhere.de 10.1.53.13
Als yaml-File:
ungrouped: hosts: 10.1.55.13: Mailserver: hosts: mail1.somewhere.de: mail2.somewhere.de: DNSServer: hosts: ns1.somewhere.de: ns2.somewhere.de: webserver: hosts: web[1:10].somweher.de: production: children: DNSServer: Mailserver: debianserver: hosts: mail1.somewhere.de: 10.1.53.13: mixed: children: DNSServer: hosts: 10.1.35.55
ansible-inventory ist das zu den Inventories gehörende Werkzeug.
ansible-inventory -i <Inventory-File/Directory> <Option> <Action>
Actions:
--list
→ gebe das gesamte Inventory aus. Wird genutzt um Inventory an ansible zu übergeben
--graph
→ gebe die Inventory-Struktur als Graph aus
--host <Host>
→ gebe die Daten über einen bestimmten Managed Host aus
Option | Beschreibung |
---|---|
–yaml | –toml | Gibt die Daten wahlweise im Yaml- oder TOML-Format aus. JSON ist das Format wenn nichts angegeben wird. Dadurch lassen sich Dateien auch konvertieren |
- name: Name of play 1 hosts: group_or_name_of_hosts tasks: - name: NameofTask1 modulename1: parameter1: value1 parameter2: value2 - name: NameofTask2 modulename2: parameter1: value1 parameter2: value2 - name: Name of play2 hosts: group_or_name_of_hosts tasks: - name: NameofTask1 modulename2: parameter1: value1 parameter2: value2
ansible-playbook <Option> <Playbookfile>
Führt das entsprechende Playbook aus
ansible-playbook <Playbookfile>
Option | Beschreibung |
---|---|
–check-syntax | Prüft die Syntax des Playbooks |
Modul | Beschreibung |
---|---|
copy | Kopiert vom ansible-Controller (lokale Maschine) auf einen Managed Host oder innerhalb eines Managed Hosts |
fetch | Kopiert Dateien von einem managed Host auf den Ansible-Controller |
Befehl | Beschreibung |
---|---|
<Module> | Gibt die Dokumentation (und die Parameter) für ein installiertes Modul aus |
-l -t module | Erlaubt die Angabe eines Modul-Typs |
Im Inventory:
mygroup: vars: myvar: 5 hosts: 85.206.62.161: myvar: "Coming from 56.108.82.247 inventory host config" 57.17.117.156:
In var-Directories:
Inhalt der Datei sind key-Value-Pairs:
<variable>: <Wert>
package: apache2
In Playbooks:
- name: Play-Name hosts: myhostlist vars: myvar: myvalue tasks: - name: sometaskt ansible.builtin.debug: msg: "{{myvar}}"
{{Variable}}
- name: Play-Name hosts: myhostlist tasks: - name: sometask vars: myvar: someothervalue ansible.builtin.debug: msg: "{{myvar}}"
- name: Play-Name hosts: myhostlist roles: - <role-name>
Roles und Modules sind in Collections zusammengefasst, die heruntergeladen werden können (von ansible oder woanders).
Wenn ein Modul:
ansible.builtin.debug
heißt, dann ist „ansible.builtin“ die Collection.
Befehl | Beschreibung |
---|---|
install <Collection-Name> | Installiert eine bestimmte Collection |
^Option ^Beschreibung ^
-l | Listet alle installierten Plugins |
-l -t <Type> | Listet alle Plugins eines bestimmten Typs. Zum Beispiel:
|
Befehl | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|
ansible-config | Alles was mit der ansible.cfg zu tun hat.
|