J'ai décidé d'utiliser Ansible dans mes recherches, et quand je l'ai installé, je suis tombé sur certains, donc je vais décrire comment y faire face. Nous allons fermer le terminal de gestion avec Ansible.
Du côté serveur Installez Ansible et Python 2.7.
$ sudo apt-get install ansible
$ sudo apt-get install python2.7
Côté client Installez Python Simplejson.
$ sudo apt-get install python-simplejson
Vous avez maintenant tout ce dont vous avez besoin installé.
L'authentification par clé publique est requise pour se connecter du serveur au client avec Ansible. Cependant, même si vous ne prenez pas la peine de dépenser de l'argent pour émettre un certificat de l'autorité de certification, l'autocertification est suffisante, alors utilisez l'autocertification. Cependant, au lieu de s'authentifier avec une clé publique, l'authentification est effectuée avec une clé privée. Aucun mot de passe n'est défini cette fois. Assurez-vous de copier la clé privée sur le serveur
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/karuma/.ssh/id_rsa):← Appuyez sur la touche Entrée
Created directory '/home/karuma/.ssh'. ← ~/.Si ssh n'existe pas, créez un répertoire
Enter passphrase (empty for no passphrase):← Entrez la phrase secrète(N'entrez pas cette heure)
Enter same passphrase again:← Saisissez à nouveau la phrase secrète(N'entrez pas cette heure)
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/id_rsa*
$ chmod 700 ~/.ssh/
$ chmod 600 ~/.ssh/authorized_keys
Les trois éléments ci-dessus doivent être préparés. Aussi, à titre d'exemple, changez-le de manière appropriée en fonction de votre propre environnement.
..ssh/config
Adresse IP de l'hôte
Adresse IP de HostName
User test
Port 22
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile "Coordonnées absolues de la clé privée"
IdentitiesOnly yes
LogLevel FATAL
/etc/ansible/hosts.
[all]
(IPAddress) ansbile_ssh_user=(UserName) ansible_ssh_private_key_file=(Coordonnées absolues de la clé privée)
[all:vars]
ansible_sudo_pass=(mot de passe sudo)
En définissant [test: vars], les mêmes paramètres peuvent être spécifiés pour tous les terminaux décrits dans [test]. Dans cet exemple, le mot de passe sudo est spécifié.
/etc/ansible/test.yml
---
- hosts:all
always_run:yes
tasks:
- name: shutdown
Command: shutdown -h now
Confirmez que la communication peut être confirmée d'Ansible vers le terminal géré.
$ ansible all -m ping
Si cela devient un tel affichage, c'est réussi.
Ensuite, essayez d'arrêter.
$ ansible-playbook /etc/ansible/shutdown.yml --check -s
J'ai ajouté "--check" pour vérifier l'opération cette fois, mais ce n'est pas nécessaire lors de son utilisation.
~~ De plus, il y a une erreur dans cette image, mais je songe à enquêter sur la cause à l'avenir. Cependant, il a été confirmé que le terminal de gestion est arrêté normalement. ~~ Il s'est avéré que cette erreur était due à la coupure de la connexion en raison de l'arrêt du terminal de gestion lors de la connexion SSH côté Ansible. Par conséquent, Ansible peut être arrêté normalement en le réécrivant avec le contenu suivant. En changeant la commande de «maintenant» à «1», il s'éteindra après 1 minute.
/etc/ansible/test.yml
---
- hosts:all
always_run:yes
tasks:
- name: shutdown
Command: shutdown -h 1
Recommended Posts