Ansible ist ein Automatisierungstool zum Verwalten mehrerer Remote-Hosts von einem einzigen Computer aus. Es bietet Ihnen eine einfache Konfiguration für eine große Anzahl von Remote-Hosts. Wenn Sie beispielsweise dieselben Aufgaben auf mehreren Computern ausführen, bietet Ihnen Ansible die Möglichkeit, diese Aufgaben zu automatisieren.
Dieses Tutorial hilft Ihnen bei der Installation von Ansible auf Debian 8 (Jessie)-Systemen.
Schritt 1 – SSH-Zugriff konfigurieren
Sie können schlüsselbasiertes SSH für die Remote-Linux-Ansible-Hosts konfigurieren. Für SSH ist also kein Passwort erforderlich. Ansible erlaubt Ihnen auch, ein Passwort für ssh zu verwenden, aber schlüsselbasiertes ssh ist sicherer.
Generieren Sie ein SSH-Schlüsselpaar auf Ihrem Ansible-Server:
ssh-keygen
Kopieren Sie den öffentlichen Schlüssel auf alle Ihre Remote-Hosts, die Sie benötigen, um sich über diesen SSH-Schlüssel zu verbinden.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]_host
Schritt 2 – Ansible auf Debian 8 installieren
Ansible stellt sein offizielles PPA für die Installation auf Debian-Systemen zur Verfügung.
Fügen Sie die folgende Zeile zu /etc/apt/sources.list hinzu Datei:
deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
Führen Sie dann die folgenden Befehle aus, um den Signaturschlüssel hinzuzufügen und Ansible zu installieren.
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 sudo apt update sudo apt install ansible
Schritt 3 – Ansible-Hosts und -Gruppen konfigurieren
Ihr Server ist mit Ansible bereit für Remote-Host-Management und -Automatisierung. Sie können eine Reihe von Hosts haben, die Sie benötigen, und sie mit einem einzigen Ansible-Server verwalten.
Hier müssen Sie Ihre Remote-Systeme in der Ansible-Hosts-Datei (/etc/ansible/hosts) definieren. Sie können auch Gruppen von Hosts mit ähnlichen Typen erstellen. Hier müssen Sie Ihre Hosts richtig in Gruppen organisieren. Gruppen werden verwendet, um eine Aufgabe auf allen darunter definierten Remote-Hosts auszuführen.
Bearbeiten Sie die Ansible-Hosts-Konfigurationsdatei. Zum Beispiel:
sudo nano /etc/ansible/hosts
Fügen Sie Ihre Gastgeber hinzu und organisieren Sie sie in Gruppen. Ein Host kann mehreren Gruppen hinzugefügt werden .
[webservers] web-host1 web-host2 [dbservers] db-host1
Das folgende Bild hilft Ihnen, Gruppen und Hosts unter einer Gruppe zu verstehen.
Konfiguration einzelner Host-Variablen
Sie müssen Einstellungen für Ihre Hosts definieren. Die Host-spezifische Datei muss denselben Namen wie Host haben (z. B.:web-host1) im Verzeichnis host_vars.
sudo mkdir /etc/ansible/host_vars sudo vi /etc/ansible/host_vars/web-host1
Fügen Sie dieser Datei die SSH-Einstellungen für web-host1 hinzu.
ansible_ssh_host: 192.168.1.15 ansible_ssh_port: 22 ansible_ssh_user: root
Falls Sie Schritt 1 für die SSH-Verbindung für diesen Host nicht verwendet haben. Sie können auch eine der folgenden Methoden zur Konfigurationsdatei von web-hosts1 für die Authentifizierung hinzufügen.
ansible_ssh_pass: secret_password ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem
Konfiguration der Gruppenvariablen
Sie können allgemeine Variableneinstellungen einer Gruppe unter Gruppenkonfigurationen konfigurieren. Der Gruppendateiname muss mit dem Gruppennamen (zB:Webserver) unter group_vars
übereinstimmen Verzeichnis.
sudo mkdir /etc/ansible/group_vars sudo vi /etc/ansible/group_vars/webservers
Fügen Sie dieser Datei die gemeinsamen Variablen hinzu, die von allen Hosts verwendet werden, die dieser Gruppe hinzugefügt wurden.
ansible_ssh_port: 22 ansible_ssh_user: root
Schritt 4 – Ansible-Setup testen
Ihr Ansible-Setup ist zum Testen bereit. So testen Sie die Konnektivität aller Hosts mit einem Ping-Modul wie:
ansible -m ping all
Um die Konnektivität für einen bestimmten Host oder eine Gruppe von Hosts zu testen
ansible -m ping web-host1 ## Specific host ansible -m ping webservers ## Specific group
Sie können einen Befehl auch mit dem Shell-Modul ausführen. Testen Sie beispielsweise den freien Speicher auf web-host1. Sie können dieselbe Aufgabe auch für eine Gruppe ausführen. Verwenden Sie einfach den Gruppennamen anstelle des Hostnamens.
ansible -m shell -a 'free -m' web-host1