Ansible: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 58: | Zeile 58: | ||
In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt. | In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt. | ||
− | === Ping-Test === | + | === Einfache Kommandos === |
+ | ==== Ping-Test ==== | ||
ansible all -m ping | ansible all -m ping | ||
− | === Ausführen eines Shell-Kommandos === | + | ==== Ausführen eines Shell-Kommandos ==== |
Mit Ansible lässt sich auch jedes beliebige [[Shell]]-Kommando ausführen: | Mit Ansible lässt sich auch jedes beliebige [[Shell]]-Kommando ausführen: | ||
Zeile 70: | Zeile 71: | ||
Will man das Kommando als root ausführen, setzt man <code>--become</code> hinzu: | Will man das Kommando als root ausführen, setzt man <code>--become</code> hinzu: | ||
ansible pia2016 --become -m command -a "whoami" | ansible pia2016 --become -m command -a "whoami" | ||
+ | |||
+ | === Playbooks === | ||
+ | |||
+ | Mit Playbooks kann man automatisieren, welcher Rechner welchen Zustand erreichen soll. | ||
+ | |||
+ | Dazu nutzt man Tasks in Form von Modulaufrufen (deklarative Ansible-Form von Befehlen), Rechnergruppen und Rollen. | ||
+ | |||
+ | ==== Package-Updates ==== | ||
+ | |||
+ | Folgender Auszug aus den Tasks eines Playbooks sollte das Paket-Updaten auf einem [[Debian]]- oder [[Ubuntu]]-System ermöglichen: | ||
+ | |||
+ | - name: update and upgrade apt packages | ||
+ | become: true | ||
+ | apt: | ||
+ | name: "*" | ||
+ | state: latest | ||
+ | install_recommends: false | ||
+ | update_cache: true | ||
== Weiterführendes == | == Weiterführendes == |
Version vom 15. September 2019, 06:39 Uhr
Ansible ist ein so genanntes Orchestrierungswerkzeug, mit dem man Computer automatisch konfigurieren kann. Dazu verwendet Ansible so genannte Playbooks.
Vorbereitung
Vorbereitung des Zielrechners
- Installation eines Minimalsystems
- Einrichten eines Benutzers speziell für ansible (optional)
- Installation der Pakete
- openssh-server
- sudo
- Der ansible-Benutzer das passwortlose Ausführen erlauben (siehe Sudo)
- python3
- Verlinke python3:
sudo ln -s /usr/bin/python3 /usr/bin/python
oder - Deklarieren der entsprechenden Variable für die Rechnergruppe. Beispiel einer inventory.yaml:
- Verlinke python3:
all: hosts: blacky: ansible_host: blacky.fritz.box children: home: hosts: blacky: python3: # All hosts that only have python3 hosts: blacky: vars: ansible_python_interpreter: /usr/bin/python3
Vorbereitung des Kontrollrechners
sudo aptitude install ansible
Nutzen von Ansible
Konfiguration
Die Konfiguration kann durch verschiedene Dateien erfolgen, z.B.:
- ansible.cfg
- ~/.ansible.cfg
Der Inhalt einer ansible.cfg könnte z.B. lauten:
[defaults] inventory=inventory.yaml
Inventory
Die Inventory-Datei wird in YAML geschrieben, z.B.:
all: hosts: blacky: ansible_host: blacky.fritz.box
In YAML werden die Zeilen mit Leerzeichen, nicht mit Tabs eingerückt.
Einfache Kommandos
Ping-Test
ansible all -m ping
Ausführen eines Shell-Kommandos
Mit Ansible lässt sich auch jedes beliebige Shell-Kommando ausführen:
ansible zielrechner -m command -a "whoami"
Will man das Kommando als root ausführen, setzt man --become
hinzu:
ansible pia2016 --become -m command -a "whoami"
Playbooks
Mit Playbooks kann man automatisieren, welcher Rechner welchen Zustand erreichen soll.
Dazu nutzt man Tasks in Form von Modulaufrufen (deklarative Ansible-Form von Befehlen), Rechnergruppen und Rollen.
Package-Updates
Folgender Auszug aus den Tasks eines Playbooks sollte das Paket-Updaten auf einem Debian- oder Ubuntu-System ermöglichen:
- name: update and upgrade apt packages become: true apt: name: "*" state: latest install_recommends: false update_cache: true
Weiterführendes
Siehe