Premiers pas avec Ansible sur Ubuntu pour un meilleur provisionnement de l'environnement et une meilleure gestion de la configuration.
La gestion de la configuration est une étape cruciale dans DevOps cycle de la vie. Il aide à l'automatisation et à l'orchestration de l'infrastructure informatique.
Il existe plusieurs outils de gestion de la configuration, par exemple, Puppet, Ansible, Chef et SaltStack. Et, bien sûr, Ansible est l'un des outils les plus populaires de DevOps. Il peut gérer facilement des milliers de serveurs et votre infrastructure informatique complète.

Nous couvrirons ce qui suit dans cet article.
- Installation Ansible
- Échange de clés SSH
- Configuration du client Ansible
- Test Ansible
Ansible Installation
Pour faire simple, essayons d'utiliser Ansible sur deux serveurs. L'un sera ansible-server et un autre ansible-client avec l'adresse IP suivante.
- serveur-ansible - 10.0.0.1
- ansible-client - 10.0.0.25
L'installation est simple… ce qui suit doit être fait sur tous les serveurs sur lesquels vous souhaitez utiliser Ansible. Dans ce cas, sur les deux serveurs ci-dessus.
- Exécutez la commande ci-dessous pour installer le logiciel nécessaire à l'installation d'ansible.
root@ansible-server:~# apt install software-properties-common
- Installez le référentiel avec le package ansible.
root@ansible-server:~# apt-add-repository --yes --update ppa:ansible/ansible
- Mettre à jour l'outil de packaging avancé (apt)
root@ansible-server:~# apt update
- Et, enfin - exécutez la commande ci-dessous pour installer
root@ansible-server:~# apt install ansible
Il faudra quelques secondes pour installer le package nécessaire.
Comment vous assurez-vous de son installation et de sa version?
Eh bien, c'est facile. Vous pouvez utiliser --version
syntaxe avec ansible à découvrir comme ci-dessous.
root@ansible-server:~# ansible --version
ansible 2.8.1
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.15+ (default, Nov 27 2018, 23:36:35) [GCC 7.3.0]
root@ansible-server:~#
Comme vous pouvez le voir, Ansible 2.8.1 est installé et fournit les informations nécessaires telles que l'emplacement du fichier de configuration, le module python.
Ensuite, nous devons échanger des clés SSH afin de servir et qu'un client puisse se parler.
SSH Key Exchange
Ansible se connecte à son client via SSH (Secure Shell).
Nous allons d'abord générer une clé publique sur le serveur ansible, qui doit être copiée sur le client ansible.
Assurez-vous que vous êtes connecté en tant qu'utilisateur root.
- Générez la clé en utilisant
ssh-keygen
commande comme indiqué ci-dessous
root@ansible-server:~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:cDapZBESo+8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A root@ansible-server
The key's randomart image is:
+---[RSA 2048]----+
| =.+oo . |
| . B.B.= . |
| . o @oE + |
| . *oO * . |
| o++.S + . |
| .o +o . + |
| .o..o + |
| ..o o . |
| .o o. |
+----[SHA256]-----+
root@ansible-server:~#
Comme vous l'auriez remarqué, il a généré une clé publique dans le .ssh
dossier. Le chemin complet est /root/.ssh/id_rsa.pub
Notez les: assurez-vous que les fichiers de clés privées et publiques ne sont pas lisibles partout. Vous pouvez lister les fichiers pour les vérifier.
- Accédez au dossier .ssh
cd /root/.ssh
- Lister les fichiers
root@ubuntu:~# ls -l
-rw------- 1 root root 1679 Jun 19 00:37 id_rsa
-rw------- 1 root root 404 Jun 19 00:37 id_rsa.pub
Si vous remarquez que l'autorisation est incorrecte, vous pouvez la modifier en utilisant chmod
commander
Ex:
chmod 400 id_rsa
chmod 400 id_rsa.pub
Copions la clé publique sur l'hôte Ansible dont l'adresse IP est 192.168.56.101
root@ansible-server:~/.ssh# ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.0.25
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '10.0.0.25 (10.0.0.25)' can't be established.
ECDSA key fingerprint is SHA256:eXduPrfV0mhxUcpsZWg+0oXDim7bHb90caA/Rt79cIs.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@10.0.0.25's password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@10.0.0.25'"
and check to make sure that only the key(s) you wanted were added.
root@ansible-server:~/.ssh#
Vous pouvez voir dans la sortie ci-dessus, 1 clé a été ajoutée avec succès. Cela indique que la clé SSH est échangée.
Ensuite, nous allons configurer un client Ansible.
Ansible Client Setup
Je suppose que vous avez déjà suivi les étapes d'installation d'Ansible sur le serveur client comme expliqué dans les étapes précédentes.
La configuration du client ou de l'hôte n'est rien d'autre que de rendre le serveur Ansible conscient des clients. Et, pour ce faire:
- Connectez-vous au serveur Ansible
- Accédez à / etc / ansible
- Ajoutez ce qui suit dans fichier hosts en utilisant votre éditeur préféré
[Client]
node1 ansible_ssh_host=10.0.0.25
- Enregistrez le fichier d'hôtes
Ansible Test
Si vous avez suivi toutes les étapes correctement, vous obtiendrez un SUCCÈS message lorsque vous exécutez la commande ci-dessous sur le serveur ansible.
root@ansible-server:~/.ssh# ansible -m ping Client
node1 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
root@ansible-server:~/.ssh#
Le point ci-dessus envoie un ping au client pour tester la connectivité et confirmer si elle est bonne ou non.
Conclusion
J'espère que cela vous donne une idée pour commencer l'installation et jouer. Restez à l'écoute pour plus de didacticiels Ansible ou consultez également ceci Cours Udemy Mastering Ansible.