Heutzutage ist die Automatisierung im IT-Bereich das heiße Thema und jede Organisation beginnt damit, Automatisierungstools wie Puppet einzuführen , Ansible , Koch , CFEngine , Vorarbeiter und Katello . Von diesen Tools ist Ansible die erste Wahl fast aller IT-Organisationen, um UNIX- und Linux-ähnliche Systeme zu verwalten. In diesem Artikel zeigen wir, wie man das Ansible-Tool auf Debian 10 Server installiert und verwendet.
Details zu meinem Labor:
- Debian 10 – Ansible-Server/Controller-Knoten – 192.168.1.14
- CentOS 7 – Ansible Host (Webserver) – 192.168.1.15
- CentOS 7 – Ansible Host (DB-Server) – 192.169.1.17
Wir zeigen auch, wie Linux-Server mit Ansible Server verwaltet werden können
Ansible-Installation auf Debian 10 Server
Ich gehe davon aus, dass Sie in Ihrem Debian 10-System einen Benutzer haben, der entweder Root-Rechte oder Sudo-Rechte hat. In meinem Setup habe ich einen lokalen Benutzer namens „pkumar“ mit sudo-Rechten.
Ansible 2.7-Pakete sind in den standardmäßigen Debian 10-Repositories verfügbar, führen Sie die folgenden Befehle von der Befehlszeile aus, um Ansible zu installieren,
$ sudo apt update $ sudo apt install ansible -y
Führen Sie den folgenden Befehl aus, um die Ansible-Version zu überprüfen,
[email protected]:~$ sudo ansible --version
Um die neueste Version von Ansible 2.8 zu installieren, müssen wir zuerst Ansible-Repositories einrichten.
Führen Sie die folgenden Befehle nacheinander aus,
$ echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" \ | sudo tee -a /etc/apt/sources.list $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 $ sudo apt update $ sudo apt install ansible -y $ sudo ansible --version
Linux-Server mit Ansible verwalten
Sehen Sie sich die folgenden Schritte an, um Linux-ähnliche Server mit dem Ansible-Controller-Knoten zu verwalten,
Schritt:1) Tauschen Sie die SSH-Schlüssel zwischen Ansible Server und seinen Hosts aus
Generieren Sie die SSH-Schlüssel vom Ansible-Server und teilen Sie die Schlüssel mit den Ansible-Hosts
$ sudo -i # ssh-keygen # ssh-copy-id [email protected] # ssh-copy-id [email protected]
Schritt:2) Inventardatei für Ansible Hosts erstellen
Wenn Ansible installiert ist, wird die Datei /etc/hosts automatisch erstellt. In dieser Datei können wir die Ansible-Hosts oder ihre Clients erwähnen. Wir können auch unsere eigene ansible Host-Inventardatei in unserem Home-Verzeichnis erstellen,
Lesen Sie mehr unter:Verwalten des statischen und dynamischen Hostinventars von Ansible
Führen Sie den folgenden Befehl aus, um ein Ansible-Host-Inventar in unserem Home-Verzeichnis zu erstellen
[email protected]:~$ vi $HOME/hosts [Web] 192.168.1.15 [DB] 192.168.1.17
Speichern und beenden Sie die Datei
Hinweis: In der obigen Hosts-Datei können wir auch Hostnamen oder FQDN verwenden, aber dafür müssen wir sicherstellen, dass Ansible-Hosts erreichbar und über Hostnamen oder FQDN zugänglich sind.
Schritt:3) Ansible-Standardmodule testen und verwenden
Ansible wird mit vielen Standardmodulen geliefert, die in Ansible-Befehlen verwendet werden können. Beispiele sind unten gezeigt,
Syntax:
# ansible -i
Wo:
- -i ~/hosts :enthält eine Liste ansibler Hosts
- -m: Geben Sie nach -m das Ansible-Modul wie Ping und Shell an
: Ansible-Hosts, auf denen die Ansible-Module ausgeführt werden sollen
Überprüfen Sie die Ping-Konnektivität mit dem ansiblen Ping-Modul
$ sudo ansible -i ~/hosts -m ping all $ sudo ansible -i ~/hosts -m ping Web $ sudo ansible -i ~/hosts -m ping DB
Die Ausgabe der obigen Befehle würde in etwa so aussehen:
Ausführen von Shell-Befehlen auf Ansible-Hosts mit dem Shell-Modul
Syntax: # ansible -i
Beispiel:
[email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime" all 192.168.1.17 | CHANGED | rc=0 >> 01:48:34 up 1:07, 3 users, load average: 0.00, 0.01, 0.05 192.168.1.15 | CHANGED | rc=0 >> 01:48:39 up 1:07, 3 users, load average: 0.00, 0.01, 0.04 [email protected]:~$ [email protected]:~$ sudo ansible -i ~/hosts -m shell -a "uptime ; \ df -Th / ; uname -r" Web 192.168.1.15 | CHANGED | rc=0 >> 01:52:03 up 1:11, 3 users, load average: 0.12, 0.07, 0.06 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 13G 1017M 12G 8% / 3.10.0-327.el7.x86_64 [email protected]:~$
Die obige Befehlsausgabe bestätigt, dass wir den Ansible Controller Node erfolgreich eingerichtet haben
Lassen Sie uns ein beispielhaftes NGINX-Installationsplaybook erstellen. Das folgende Playbook installiert nginx auf allen Servern, die Teil der Webhostgruppe sind, aber in meinem Fall habe ich einen Centos 7-Computer unter dieser Hostgruppe.
[email protected]:~$ vi nginx.yaml --- - hosts: Web tasks: - name: Install latest version of nginx on CentOS 7 Server yum: name=nginx state=latest - name: start nginx service: name: nginx state: started
Führen Sie nun das Playbook mit dem folgenden Befehl aus,
[email protected]:~$ sudo ansible-playbook -i ~/hosts nginx.yaml
Die Ausgabe des obigen Befehls wäre so etwas wie unten,
Dies bestätigt, dass das Ansible Playbook erfolgreich ausgeführt wurde, das ist alles aus dem Artikel, bitte teilen Sie Ihr Feedback und Ihre Kommentare.