installation d'Ansible sur CentOS 8
Ansible outil open source d’automatisation, d’orchestration et de configuration automatique
Why Ansible ?
En utilisant Ansible pour votre DevOps , vous pouvez provisionner des machines virtuelles, réseau et infrastructure cloud.
Plein de modules sont mise à votre disposition afin d’automatiser vos taches.
Ces taches peuvent être exécuter à distance à travers :
installation Ansible
Afin d’installer Ansible sur CentOS 8 depuis le repository EPEL
Nous mettons à votre disposition un script shell sur github (install-ansible.sh)
|
|
Ouvrez le compartiment ci-dessous décrivant step by step l’installation d’Ansible
|
|
Préparation de l’environnement
Nous allons utiliser dans cet articles 03 VMs :
- 1x Ansible : Déploiment automatique Ansible
- 1x web : Serveur WEB
- 1x db : Serveur de base de donnée
VM | hostname | adresse IP | vCPU | vRAM |
---|---|---|---|---|
mgmt | ansible.formini.local | 172.15.20.20 | 2 | 2048 MB |
web | web.formini.local | 172.15.20.201 | 1 | 1024 MB |
db | db.formini.local | 172.15.20.202 | 1 | 1024 MB |
Ansible utilise SSH pour se connecter aux machines cibles.
Afin de permettre à Ansible de ce connecter aux machines cibles sans mot de passe , nous utiliserons l’authentification basée sur les clés SSH
génération de la paire de clé SSH
dans cet example nous sommes connecter avec l’utilisateur vagrant. Par défaut , la paire de clé ssh seront enregistrer dans le répertoire de travail de cet utilisateur , à savoir /home/vagrant/.ssh/
- clé public : /home/vagrant/.ssh/id_rsa.pub
- clé private: /home/vagrant/.ssh/id_rsa
la commande suivante va générer votre paire de clé :
|
|
accepter les clés ssh public cible
afin d’eviter de taper yes lorsque vous vous connecter , la première fois , à vos machines cibles , vous pouvez en une seule commande , accepter et enregistrer les clés ssh public cibles dans le fichier /home/vagrant/.ssh/known_hosts
la commande suivante permettera d’accepter la clé public des (02) deux VMs web et db
|
|
envoie de la clé ssh public source
Afin de permettre à Ansible de se connecter sans mot de passe aux machines cible , vous devez envoyer la clé ssh public source vers l’ensemble des VMs.
si on a un petit nombre de machine cible , on peut utiliser la commande ssh-copy-id
qui s’occupe de l’envoie de la clé SSH public source vers la cible .
Cependant, notre but est d’automatiser ce process.
Par conséquent nous allons utiliser ansible
gestion par projet : ansible.cfg
par défaut , ansible utilise le fichier /etc/ansible/ansible.cfg
.
pour un meilleur controle par projet , nous allons créer un dossier 01-send-ssh-key
et à l’interrieur de ce dernier nous allons créer un fichier ansible.cfg
|
|
pour le moment, le contenu de ce nouveau fichier ansible.cfg
va contenir une seule ligne :
|
|
gestion par projet : inventory.ini
dans le même dossier créer ci-dessus 01-send-ssh-key
nous aurons besoin de déclarer les adresses IP / FQDN de chaque machines cibles. Pour cela nous allons créer dans ce même dossier , le fichier inventory.ini
|
|
si vous avez préparer votre résolution DNS local sur le fichier /etc/hosts
Autrement , vous pouvez utiliser les adresses IP des machines cibles :
|
|
Playbook : infrastructure as a Code
Désormais vous êtes prêt à créer votre 1er playbook contenant les tasks à exécuter sur toutes les machines cibles que vous avez déclarer dans le fichier inventory.ini
Ouvrez le compartiment ci-dessous pour voir le ssh-addkey.yml
|
|
exécution du playbook
afin d’éxcuter le playbook , vous devez utiliser la commande suivante :
|
|
puis introduire le mot de passe du remote_user : vagrant et hop 😄 la clé ssh public source vient d’être envoyé ❤️ à toutes les machines cibles décrites dans le fichier inventory.ini
Aussi, je vous invites à vous abonner à nos réseaux sociaux: