Ich habe mich entschieden, Ansible für meine Recherchen zu verwenden, und als ich es installiert habe, bin ich auf einige gestoßen, daher werde ich beschreiben, wie ich damit umgehen soll. Wir werden das Management-Terminal mit Ansible herunterfahren.
Serverseite Installieren Sie Ansible und Python 2.7.
$ sudo apt-get install ansible
$ sudo apt-get install python2.7
Client-Seite Installieren Sie Python Simplejson.
$ sudo apt-get install python-simplejson
Jetzt haben Sie alles installiert, was Sie brauchen.
Die Authentifizierung mit öffentlichem Schlüssel ist erforderlich, um mit Ansible eine Verbindung vom Server zum Client herzustellen. Selbst wenn Sie sich nicht die Mühe machen, Geld für die Ausstellung eines Zertifikats der Zertifizierungsstelle auszugeben, ist das Selbstzertifikat ausreichend. Verwenden Sie daher das Selbstzertifikat. Anstatt sich mit einem öffentlichen Schlüssel zu authentifizieren, wird die Authentifizierung jedoch mit einem privaten Schlüssel durchgeführt. Diesmal ist kein Passwort festgelegt. Stellen Sie sicher, dass Sie den privaten Schlüssel auf den Server kopieren
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/karuma/.ssh/id_rsa):← Drücken Sie die Eingabetaste
Created directory '/home/karuma/.ssh'. ← ~/.Wenn ssh nicht vorhanden ist, erstellen Sie ein Verzeichnis
Enter passphrase (empty for no passphrase):← Geben Sie die Passphrase ein(Geben Sie diese Zeit nicht ein)
Enter same passphrase again:← Geben Sie die Passphrase erneut ein(Geben Sie diese Zeit nicht ein)
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/id_rsa*
$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys
Die oben genannten drei Punkte müssen vorbereitet werden. Ändern Sie es beispielsweise entsprechend Ihrer eigenen Umgebung.
..ssh/config
Host-IP-Adresse
Hostname IP-Adresse
User test
Port 22
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "Absolute Koordinaten des privaten Schlüssels"
IdentitiesOnly yes
LogLevel FATAL
/etc/ansible/hosts.
[all]
(IPAddress) ansbile_ssh_user=(UserName) ansible_ssh_private_key_file=(Absolute Koordinaten des privaten Schlüssels)
[all:vars]
ansible_sudo_pass=(Sudo Passwort)
Durch Einstellen von [test: vars] können für alle in [test] beschriebenen Terminals die gleichen Einstellungen festgelegt werden. In diesem Beispiel wird das sudo-Passwort angegeben.
/etc/ansible/test.yml
---
- hosts:all
always_run:yes
tasks:
- name: shutdown
Command: shutdown -h now
Bestätigen Sie, dass die Kommunikation von Ansible zum verwalteten Terminal bestätigt werden kann.
$ ansible all -m ping
Wenn es zu einer solchen Anzeige wird, ist es erfolgreich.
Versuchen Sie als nächstes, das System herunterzufahren.
$ ansible-playbook /etc/ansible/shutdown.yml --check -s
Ich habe "--check" hinzugefügt, um den Vorgang dieses Mal zu überprüfen, aber es ist nicht erforderlich, wenn es tatsächlich verwendet wird.
~~ Auch in diesem Bild ist ein Fehler aufgetreten, aber ich denke darüber nach, die Ursache in Zukunft zu untersuchen. Es wurde jedoch bestätigt, dass das Management-Terminal normal heruntergefahren wird. ~~ Es stellte sich heraus, dass dieser Fehler dadurch verursacht wurde, dass die Verbindung unterbrochen wurde, weil das Management-Terminal während der SSH-Verbindung auf der Ansible-Seite heruntergefahren wurde. Daher kann Ansible normal beendet werden, indem es mit den folgenden Inhalten neu geschrieben wird. Wenn Sie den Befehl von "jetzt" auf "1" ändern, wird er nach 1 Minute heruntergefahren.
/etc/ansible/test.yml
---
- hosts:all
always_run:yes
tasks:
- name: shutdown
Command: shutdown -h 1
Recommended Posts