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 | Listet die installierten Module |
| -l -t <type> | 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 |
| Befehl | Beschreibung | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| ansible-config | Alles was mit der ansible.cfg zu tun hat.
|