Introduction
C’est quoi Ansible ?
Ansible
est un outil open-source de gestion de configuration, de provisionnement de logiciels et de déploiement d’applications qui rend très simple l’automatisation des déploiements d’applications et des opérations d’infrastructure informatique. C’est une solution sans agent et facile à configurer contrairement à d’autres outils d’automatisation comme Puppet
ou Chef
.
Installation
Ansible s’appuie sur SSH et Python pour réaliser toute l’automatisation et il suffit donc d’installer Ansible sur le nœud de contrôle et de s’assurer qu’OpenSSH et Python sont installés à la fois sur le contrôle (l’endroit où Ansible est installé) et sur le nœud (l’hôte qui a besoin d’être configuré). Lors de la configuration d’équipements réseau, il existe une autre façon de configurer le nœud car il n’est pas possible d’installer Python (Python 3 recommandé) sur ces hôtes.
Voici quelques méthodes pour installer Ansible :
- via PIP
- via le fichier binaire
- via les dépôts
- docker
PIP
sudo apt install python3-pip
VERSION=3
pip install ansible==$VERSION
ansible --version
Fichier binaire
git clone https://github.com/ansible/ansible.bit
cd ansible
source ./hacking/env-setup
sudo apt install python3-pip
pip install --user -r ./requirements # Module installation for Jinja
Dépôts
apt-add-repository --yes --update ppa:/ansible/ansible-2.9
sudo apt install ansible
ansible --version
Notes et Recommendations
Même si vous pouvez utiliser l’utilisateur root dans Ansible pour exécuter des commandes Ad-Hoc et des playbooks, cela n’est pas considéré comme une bonne pratique en raison des risques de sécurité qui peuvent survenir en permettant à l’utilisateur root d’accéder à ssh. Pour cette raison, il est recommandé de créer un utilisateur Ansible dédié avec des privilèges sudo sur chaque nœud et sur le manager.
useradd -m aubin
echo "aubin ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers
Configurez maintenant la clé SSH pour accéder au nœud sans utiliser de mot de passe.
ssh-keygen
ssh-copy-id node[1-x]
Configurer Python3 comme interpreteur par défaut de Ansible. On pourra faire un lien de /usr/bin/python
vers python3
ou alors on doit configurer la valeur de ansible_python_interpreter=/usr/bin/python3
dans le fichier ansible.cfg
Variable
NOM="John"
echo $NOM
echo "$NOM"
echo "${NOM}
Condition
if [[ -z "$chaine" ]]; then
echo "La chaine est vide"
elif [[ -n "$chaine" ]]; then
echo "La chaine est vide"
fi