Netzwerktopologie
Hier, ansible-pc ist eine Debian 10-Maschine, auf der wir Ansible installieren werden install.
Die Server 6f7c2 und 6b219 sind Debian 10-Maschinen, die wir für die Ansible-Automatisierung konfigurieren werden. Ich werde diese Server für die Zwecke dieses Artikels einfach Ansible-Hosts nennen.
Wir können Ansible verwenden von ansible-pc um verschiedene Aufgaben im . zu automatisieren 6f7c2 und 6b219 Debian-Server.
Ansible installieren
In diesem Abschnitt zeige ich Ihnen, wie Sie Ansible installieren auf ansible-pc.
Sie können Ansible unter Debian 10 aus dem offiziellen Paket-Repository von Debian installieren.
Aktualisieren Sie zunächst den Cache des APT-Paket-Repositorys mit dem folgenden Befehl:
$ sudo apt-Update
Installieren Sie nun Ansible mit dem folgenden Befehl:
$ sudo apt install ansible
Um die Installation zu bestätigen, drücken Sie Ja und drücke dann
Ansible sollte installiert sein.
Führen Sie nun den folgenden Befehl aus, um zu überprüfen, ob Ansible korrekt funktioniert.
$ ansible --versionWie Sie sehen, ist der ansible-Befehl verfügbar und funktioniert ordnungsgemäß. Ansible 2.7.7 ist die neueste Version von Ansible, die zum Zeitpunkt der Erstellung dieses Artikels im Debian-Paket-Repository verfügbar war.
SSH-Schlüssel generieren
Auf der Debian 10-Maschine (ansible-pc) wo Sie Ansible installiert haben, müssen Sie zuerst einen SSH-Schlüssel generieren.
Führen Sie den folgenden Befehl aus, um einen SSH-Schlüssel zu generieren:
$ ssh-keygen
Jetzt drücken
Drücken Sie
Drücken Sie
Ein SSH-Schlüssel sollte generiert werden.
Konfigurieren von Debian-Hosts für Ansible Automation
In diesem Abschnitt zeige ich Ihnen, wie Sie einen Debian-Host für die Ansible-Automatisierung konfigurieren. Wenn Sie mehrere Hosts haben, die Sie mit Ansible automatisieren möchten, wiederholen Sie den gleichen Vorgang für jeden der Hosts.
Auf den Hosts, die Sie für die Ansible-Automatisierung konfigurieren möchten, muss das SSH-Serverpaket vorinstalliert sein.
Aktualisieren Sie zunächst den Cache des APT-Paket-Repositorys mit dem folgenden Befehl:
$ sudo apt-Update
Installieren Sie dann den OpenSSH-Server mit dem folgenden Befehl:
$ sudo apt install openssh-server -y
In meinem Fall ist das OpenSSH-Serverpaket bereits installiert. Wenn es in Ihrem Fall nicht installiert ist, sollte es vor diesem Schritt installiert werden.
Überprüfen Sie nun, ob die sshd service wird über den folgenden Befehl ausgeführt:
$ sudo systemctl status sshdWie Sie sehen können, ist die sshd Dienst ist aktiv (laufend) und aktiviert (wird automatisch beim Systemstart gestartet).
Wenn die sshd Dienst ist nicht aktiv (läuft), starten Sie es manuell mit dem folgenden Befehl:
$ sudo systemctl start sshd
Wenn die sshd Service ist nicht aktiviert (nicht zum Systemstart hinzugefügt) fügen Sie es in Ihrem Fall manuell mit dem folgenden Befehl zum Systemstart hinzu:
$ sudo systemctl sshd aktivieren
Erstellen Sie nun eine ansible Benutzer und erlauben Sie passwortlosen sudo-Zugriff auf die ansible Benutzer.
Um eine zu erstellen ansible Benutzer, führen Sie den folgenden Befehl aus:
$ sudo adduser --shell /bin/bash --gecos "" ansible
Geben Sie ein Passwort für die . ein ansible Benutzer und drücken Sie
Geben Sie das Passwort erneut ein und drücken Sie
Ein ansible Benutzer sollte erstellt werden.
Um nun den passwortlosen sudo-Zugriff auf die ansible Benutzer, bearbeiten Sie die /etc/sudoers Datei mit folgendem Befehl:
$ sudo visudo
Fügen Sie nun die folgende Zeile zum hinzu /etc/sudoers Datei.
ansible ALL=(ALL) NOPASSWD:ALLSpeichern Sie dann die Datei, indem Sie drücken
Suchen Sie nun die IP-Adresse des Ansible-Hosts 6f7c2 mit folgendem Befehl:
$ Hostname -IHier ist die IP-Adresse in meinem Fall 192.168.20.167. Bei dir wird es anders sein. Stellen Sie also sicher, dass Sie diese Adresse jetzt durch Ihr eigenes Formular ersetzen.
Kopieren des öffentlichen SSH-Schlüssels auf den Ansible-Host
Von dem Computer, auf dem Sie Ansible installiert haben (ansible-pc), kopieren Sie den öffentlichen SSH-Schlüssel auf den Ansible-Host 6f7c2 wie folgt:
$ ssh-copy-id [email protected]
Eintippen Ja und drücke
Geben Sie als Nächstes das Passwort für die ansible Benutzer und drücken Sie
Der öffentliche SSH-Schlüssel sollte auf den Ansible-Host kopiert werden 6f7c2.
Sie sollten in der Lage sein, eine SSH-Verbindung zum Ansible-Host herzustellen 6f7c2 als Benutzer ansible ohne Passwort, wie Sie dem Screenshot unten entnehmen können:
$ ssh [email protected]
Sie sollten auch in der Lage sein, sudo-Befehle auszuführen, ohne nach einem Passwort gefragt zu werden.
$ sudo ls /
Schließen Sie abschließend die SSH-Sitzung wie folgt:
$ beenden
Sichern von Ansible-Hosts
Als die ansible Benutzer können jeden sudo-Befehl ausführen, ohne nach einem Passwort gefragt zu werden, wir haben die SSH-Schlüsselbasierte Anmeldung für die Ansible-Hosts konfiguriert configured. Sie können jedoch weiterhin SSH in die Ansible-Hosts als ansible Benutzer mit dem Passwort des ansible Benutzer. Das ist also nicht sehr sicher.
Führen Sie zur Verbesserung der Sicherheit den folgenden Befehl auf den Ansible-Hosts aus, um die kennwortbasierte Anmeldung für die ansible Benutzer:
$ sudo usermod -L ansible
Wenn Sie sich später entscheiden, die passwortbasierte Anmeldung für die for ansible user, führen Sie den folgenden Befehl auf dem Ansible-Host aus:
$ sudo usermod -U ansibleAnsible testen
Erstellen Sie ein neues Projektverzeichnis ~/projekt/ auf dem Debian-Rechner, auf dem Sie Ansible installiert haben (ansible-pc) mit folgendem Code:
$ mkdir ~/project
Navigieren Sie zum ~/projekt/ Verzeichnis mit folgendem Code:
$ cd ~/projekt/
Erstelle eine neue Gastgeber Datei im Projektverzeichnis wie folgt:
$ Nano-Hosts
Listen Sie nun die IP-Adressen oder DNS-Namen der Ansible-Hosts auf (6f7c2 und 6b219 in meinem Fall) in der Gastgeber Datei:
192.168.20.167192.168.20.168
Wenn Sie fertig sind, speichern Sie die Datei, indem Sie drücken
Versuchen Sie zum Testen, alle Hosts mit Ansible mit dem folgenden Code zu pingen:
$ ansible -i ./hosts all -u ansible -m pingHINWEIS: Hier die -du Option wird verwendet, um den Benutzernamen anzugeben (ansible in diesem Fall), die Ansible für die SSH-Verbindung zu den Hosts verwendet.
Wie Sie sehen, kann Ansible auf alle Hosts zugreifen. Die Hosts sind also bereit für die Ansible-Automatisierung.
So installieren Sie Ansible auf Debian 10 und konfigurieren Debian-Hosts für die Ansible-Automatisierung. Vielen Dank für das Lesen dieses Artikels.