Ansible ist ein beliebtes Automatisierungstool, das von Systemadministratoren und Entwicklern verwendet wird, um Computer in einen bestimmten Zustand zu versetzen. Ansible-Module sind gewissermaßen das, was Befehle für einen Linux-Computer sind. Sie bieten Lösungen für spezifische Probleme, und eine häufige Aufgabe bei der Wartung von Computern besteht darin, sie auf dem neuesten Stand und konsistent zu halten. In diesem Artikel zeige ich Ihnen, wie Sie Softwarepakete mit Ansible installieren.
Anforderungen
Um Ad-hoc-Befehle und Playbooks von Ansible auf verwalteten Knoten auszuführen, wird auf jedem verwalteten Knoten ein Remotebenutzer mit SSH-Zugriff benötigt . In diesem Beispiel nenne ich diesen Benutzer tux . Tux benötigt die Berechtigung, Befehle mit erhöhten Rechten auszuführen, um Pakete zu installieren. Dazu die Datei /etc/sudoers.d/tux
mit folgendem Inhalt muss auf allen verwalteten Knoten vorhanden sein:
tux ALL=(ALL) NOPASSWD:ALL
Verwenden Sie visudo
um die /etc/sudoers
zu bearbeiten Dateieinträge.
Paketinstallation
Angenommen, Sie haben ein cooles neues Paket namens sysstat
gefunden die Sie jetzt auf allen Ihren Hosts gleichzeitig installieren möchten. Das ist eine leichte Aufgabe für Ansible:
$ ansible all --user tux --become \
--module-name dnf -a’name=sysstat state=latest’
Und du bist fertig.
[Das könnte Ihnen auch gefallen: So erstellen Sie ein Ansible Playbook]
Diese eine Zeile wird als Ansible-Ad-hoc-Befehl bezeichnet. Dies sind normalerweise einmalige Aufgaben, von denen Sie nicht erwarten, dass sie sich wiederholen. Im Interesse der Wiederverwendbarkeit ist es jedoch besser, solche Anweisungen wie folgt in ein Ansible-Playbook aufzunehmen:
---
- hosts: all
tasks:
- name: Make sure the current version of ‘sysstat’ is installed.
dnf:
name: sysstat
state: latest
Speichern Sie dieses Playbook in einer Datei namens install_packages.yml
, und dann können Sie es mit dem folgenden Befehl ausführen:
$ ansible-playbook -u tux -b install_packages.yml
Sie können es mit cron
in einen Zeitplan setzen , um sicherzustellen, dass das gewünschte Paket installiert und neu installiert wird, wenn es entfernt wird.
Installieren Sie mehrere Pakete
Was ist, wenn Sie eine Liste von Paketen auf allen Ihren Hosts installieren möchten? Das ist auch einfach:
---
- hosts: all
tasks:
- name: Package installation
dnf:
name:
- sysstat
- httpd
- mariadb-server
state: latest
Führen Sie das Playbook aus:
$ ansible-playbook -u tux -b install_packages.yml
Ich bin sicher, Sie bekommen die Idee. Benötigen Sie weitere Pakete? Fügen Sie sie einfach der Liste hinzu.
Abschluss
Die Verwaltung von Software mit Ansible ist ziemlich einfach. Sie können das DNF-Modul verwenden, um die eigentliche Installation zu verwalten, und ein YAML-basiertes Ansible-Playbook, um die Installationsanweisungen an Ihre verwalteten Knoten zu verteilen. Dies ist ein weiteres hervorragendes Beispiel dafür, wie Ansible Systemadministratoren, die viele Systeme verwalten, das Leben erleichtert.
[ Holen Sie sich dieses kostenlose E-Book:Verwalten Ihrer Kubernetes-Cluster für Dummies. ]