Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En DevOps Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Démarrer avec Ansible sur Ubuntu pour améliorer le provisionnement de l’environnement et la gestion de la configuration.

La gestion de la configuration est une étape cruciale du cycle de vie DevOps. Elle contribue à 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 en matière de DevOps. Il peut gérer des milliers de serveurs et l’ensemble de votre infrastructure informatique en toute simplicité.

Install and Configure Ansible on Ubuntu

Dans cet article, nous aborderons les points suivants.

  • Installation d’Ansible
  • Échange de clés SSH
  • Configuration du client Ansible
  • Test d’Ansible

Installation d’Ansible

YouTube vidéo

Pour rester simple, essayons d’utiliser Ansible sur deux serveurs. L’un sera ansible-server et l’autre ansible-client avec les IP suivantes.

  • ansible-server – 10.0.0.1
  • ansible-client – 10.0.0.25

L’installation est simple… les opérations suivantes doivent être effectuées sur tous les serveurs sur lesquels vous souhaitez utiliser Ansible. Dans ce cas, sur les deux serveurs ci-dessus.

  • Exécutez la commande suivante pour installer les logiciels nécessaires à l’installation d’Ansible.
root@ansible-server:~# apt install software-properties-common
  • Installez le référentiel avec le paquetage ansible.
root@ansible-server:~# apt-add-repository --yes --update ppa:ansible/ansible
  • Mettez à jour l’outil d’empaquetage avancé (apt)
root@ansible-server:~# apt update
  • Et enfin, exécutez la commande ci-dessous pour installer
root@ansible-server:~# apt install ansible

L’installation des paquets nécessaires prendra quelques secondes.

Comment s’assurer de son installation et de sa version ?

Eh bien, c’est facile. Vous pouvez utiliser la syntaxe --version avec ansible pour le savoir 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
 emplacement de l'exécutable = /usr/bin/ansible
 version python = 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 procéder à l’échange de clés SSH afin que le serveur et le client puissent communiquer entre eux.

Échange de clés SSH

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 d’être connecté en tant qu’utilisateur root.

  • Générez la clé en utilisant la commande ssh-keygen comme indiqué ci-dessous
root@ansible-server:~# ssh-keygen
Generating public/private rsa key pair.
Entrez le fichier dans lequel vous souhaitez enregistrer la clé (/root/.ssh/id_rsa) : 
Saisissez la phrase d'authentification (vide si vous n'avez pas de phrase d'authentification) : 
Saisissez à nouveau la même phrase de passe : 
Votre identification a été sauvegardée dans /root/.ssh/id_rsa.
Votre clé publique a été sauvegardée dans /root/.ssh/id_rsa.pub.
L'empreinte de la clé est :
SHA256:cDapZBESo 8XcbXupbtILkFrklUSpwa70Y1c7yH5K1A root@ansible-server
L'image aléatoire de la clé est :
 ---[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’avez remarqué, il a généré une clé publique dans le dossier .ssh. Le chemin complet est /root/.ssh/id_rsa.pub

Remarque: assurez-vous que les fichiers de clés privées et publiques ne sont pas lisibles par le monde entier. Vous pouvez lister les fichiers pour les vérifier.

  • Allez dans le dossier .ssh
cd /root/.ssh
  • Listez 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 la permission est incorrecte, vous pouvez la modifier en utilisant la commande chmod

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 de la (des) clé(s) à installer : "/root/.ssh/id_rsa.pub"
L'authenticité de l'hôte '10.0.0.25 (10.0.0.25)' ne peut être établie.
L'empreinte de la clé ECDSA est SHA256:eXduPrfV0mhxUcpsZWg 0oXDim7bHb90caA/Rt79cIs.
Êtes-vous sûr de vouloir continuer à vous connecter (oui/non) ? oui
/usr/bin/ssh-copy-id : INFO : tentative de connexion avec la (les) nouvelle(s) clé(s), pour filtrer celles qui sont déjà installées
/usr/bin/ssh-copy-id : INFO : 1 clé(s) reste à installer -- si on vous le demande maintenant, c'est pour installer les nouvelles clés
Mot de passe de root@10.0.0.25 : 

Nombre de clé(s) ajoutée(s) : 1

Essayez maintenant de vous connecter à la machine, avec :   "ssh 'root@10.0.0.25'"
et vérifiez que seules les clés que vous vouliez ont été ajoutées.

root@ansible-server:~/.ssh#

Vous pouvez voir dans la sortie ci-dessus qu’une clé a été ajoutée avec succès. Cela indique que la clé SSH est échangée.

Ensuite, nous allons configurer un client Ansible.

Configuration du client Ansible

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 ne consiste qu’à informer le serveur Ansible de l’existence des clients. Et, pour ce faire :

  • Connectez-vous au serveur Ansible
  • Allez dans /etc/ansible
  • Ajoutez ce qui suit dans le fichier hosts en utilisant votre éditeur préféré
[Client] 
node1 ansible_ssh_host=10.0.0.25
  • Sauvegardez le fichier hosts

Test Ansible

Si vous avez suivi toutes les étapes correctement, vous obtiendrez un message SUCCESS lorsque vous lancerez 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#

Les pings ci-dessus sont envoyés au client pour tester la connectivité et confirmer si elle est bonne ou non.

Conclusion

J’espère que cela vous a donné une idée pour commencer à installer Ansible et à vous amuser. Restez à l’écoute pour d’autres tutoriels Ansible ou consultez également ce cours Udemy Mastering Ansible.

  • Avi
    Auteur
    Avi est un passionné de technologie avec une expertise dans les technologies en vogue telles que DevOps, Cloud Computing, Big Data et bien d'autres. Il est passionné par l'apprentissage des technologies de pointe et le partage de ses connaissances avec d'autres... en savoir plus
Merci à nos sponsors
Plus de lectures sur DevOps
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus