Ansible installieren#
System aktualisieren#
sudo apt update && sudo apt upgrade -yInstallation unter Debian#
Debian bringt Ansible direkt in den offiziellen Paketquellen mit:
sudo apt install ansible -yInstallation unter Ubuntu#
Unter Ubuntu bekommst du über das offizielle PPA eine aktuellere Version:
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ansible/ansible --yes --update
sudo apt install ansible -yDas Paket ansible enthält neben dem Kern auch viele nützliche Module, zum Beispiel für Docker oder Firewalls. Mit ansible-core bekommst du nur die Grundausstattung.
Installation prüfen#
ansible --versionErste Schritte mit Ansible#
Projektordner und Inventar anlegen#
Im Inventar trägst du die Server ein, die Ansible verwalten soll:
mkdir -p ~/ansible && cd ~/ansible && nano inventory.ini[server]
server1.deine-domain.de
server2.deine-domain.de
[server:vars]
ansible_user=adminStatt Domains kannst du auch IP-Adressen eintragen. Bei ansible_user steht der Benutzer, mit dem Ansible sich per SSH anmeldet.
Verbindung testen#
ansible server -i inventory.ini -m pingAntwortet jeder Server mit pong, klappt die Verbindung.
Erstes Playbook: Alle Server aktualisieren#
Ein Playbook beschreibt, was Ansible tun soll. Leg die Datei update.yml an:
nano update.yml- name: Server aktualisieren
hosts: server
become: true
tasks:
- name: Paketlisten aktualisieren und alle Pakete upgraden
ansible.builtin.apt:
update_cache: true
upgrade: dist
- name: Nicht mehr benötigte Pakete entfernen
ansible.builtin.apt:
autoremove: true
autoclean: true
- name: Prüfen, ob ein Neustart nötig ist
ansible.builtin.stat:
path: /var/run/reboot-required
register: reboot_required
- name: Hinweis auf Neustart ausgeben
ansible.builtin.debug:
msg: "Dieser Server muss neu gestartet werden."
when: reboot_required.stat.existsPlaybook ausführen#
ansible-playbook -i inventory.ini update.yml --ask-become-passMit --ask-become-pass fragt Ansible einmal nach deinem sudo-Passwort. Danach werden alle Server nacheinander aktualisiert, und am Ende siehst du, auf welchen sich etwas geändert hat und welche einen Neustart brauchen.
--check an. Ansible zeigt dir dann nur, was es tun würde.
