In diesem sehr kurzen Beitrag möchte ich euch zeigen, wie ihr mit Ansible einen definierten Satz an Software-Paketen auf euren Linux-Hosts installieren könnt. Dies ist z.B. dann nützlich, wenn ihr bei der Provisionierung neuer Systeme sicherstellen möchtet, dass ein bestimmter Satz an Paketen vorhanden ist.
Natürlich kann man diese Aufgabe auch auf verschiedenen anderen Wegen lösen. Dies ist halt der Ansible-Weg. ;-)
---
- hosts: all
tasks:
- name: Install package baseline
yum:
name:
- bind-utils
- net-tools
- chrony
- ed
- yum-utils
- vim-enhanced
- man-pages
- strace
- lsof
- tcpdump
- setroubleshoot-server
- setroubleshoot
- bash-completion
state: latest
update_cache: yes
Das obige Playbook zeigt ein einfaches Beispiel, wie auf einem RHEL/CentOS 7 System eine Liste von Paketen installiert werden kann. Dazu wird das Ansible-Modul yum verwendet. Der Parameter ’state‘ gibt an, dass immer die jeweils akutellste Version eines Pakets installiert werden soll. Mit ‚update_cache‘ wird definiert, dass der lokale Cache aktualisiert wird, bevor ein Paket zur Installation ausgewählt wird.
Für auf Debian/Ubuntu basierende Systeme gibt es das Modul apt. Für Fedora und RHEL/CentOS ab Version 8 nutzt man das Modul dnf.
Darüber hinaus gibt es noch das generische Modul package. Bei diesem ist jedoch zu beachten, dass die unterschiedlichen Paketmanager wie YUM und APT zum Teil unterschiedliche Paketnamen verwenden. Da ‚package‘ diese nicht automatisch übersetzt ist eine Verwendung über verschiedene Distributionen hinweg nicht ohne weiteres möglich. Daher empfinde ich dieses Modul als nutzlos.
Mich würde es brennend interessieren, wie man Ansible und das AUR bei ArchLinux verbinden kann.
Hi Frank, schau mal hier: https://github.com/kewlfft/ansible-aur
Das Ansible-Modul scheint genau das zu tun. Habe es allerdings noch nicht selbst getestet.
Danke Christian für den Tipp.
@Frank: Magst du hier eine Rückmeldung geben, ob das AUR-Modul wie erwartet funktioniert?
Viele Grüße
Jörg