Sommaire
Présentation
Dans ce tutoriel, nous allons installer et configurer ansible pour automatiser des tâches sur des hôtes Linux et Windows. Cela peut être pratique pour configurer vos serveurs locaux ou même vos VPS.
A la fin de ce tutoriel, nous serons en mesure de suivre le tutoriel de Création d’un playbook.
1) Prérequis
- Un serveur ansible
- Dans mon cas, une machine virtuelle Proxmox
- Un ou plusieurs hôtes cibles à administrer
- Les paquets sudo et python doivent être installés sur le serveur et les hôtes à administrer
2) Installation sur Debian
2.1) Installation du paquet gpg
1 |
sudo apt install -y gpg |
2.2) Récupération de la clé publique GPG du dépôt ansible
1 2 |
wget "https://keyserver.ubuntu.com/pks/lookup?fingerprint=on&op=get&search=0x6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367" \ -O ansiblegpgkey.asc |
2.3) Enregistrement de la clé dans le répertoire keyrings
1 |
sudo gpg --dearmour -o /usr/share/keyrings/ansible-archive-keyring.gpg ansiblegpgkey.asc |
2.4) Ajout du dépôt ansible
1 2 3 |
UBUNTU_CODENAME=jammy echo "deb [signed-by=/usr/share/keyrings/ansible-archive-keyring.gpg] http://ppa.launchpad.net/ansible/ansible/ubuntu $UBUNTU_CODENAME main" \ | sudo tee /etc/apt/sources.list.d/ansible.list |
Attention : Il faudra utiliser le nom de code de la version d’Ubuntu correspondant à votre version de Debian.
Exemple : jammy pour Debian 12.
2.5) Mise à jour des dépôts
1 |
sudo apt update -y |
2.6) Vérification de la provenance du paquet ansible
1 |
apt policy ansible |
2.7) Installation d’ansible
1 |
sudo apt install -y ansible |
3) Installation sur Ubuntu
3.1) Installation des prérequis
1 |
sudo apt install -y software-properties-common |
3.2) Ajout du dépôt ansible
1 |
sudo add-apt-repository --yes --update ppa:ansible/ansible |
3.3) Mise à jour des dépôts
1 |
sudo apt update -y |
3.4) Installation d’ansible
1 |
sudo apt install -y ansible |
4) Utilisateur ansible
Nous aurons besoin d’un utilisateur ayant les droits d’administration pour administrer les serveurs cibles.
Nous le nommerons « ansible » dans ce tuto mais il peut prendre un autre nom.
Si l’utilisateur « ansible » est compromis, l’ensemble des machines auxquelles il a accès seront elles aussi compromises. Il faudra définir un mot de passe fort pour cet utilisateur.
4.1) Création d’un utilisateur ansible
1 |
sudo adduser ansible |
Remplacer « ansible » par un autre nom si besoin.
4.2) Ajout de l’utilisateur ansible dans le groupe sudo
Nous aurons besoin de faire des élévations de privilège pour effectuer des actions d’administration sur les hôtes cibles. Il convient donc d’ajouter l’utilisateur ansible au groupe sudo.
1 |
sudo usermod -aG sudo ansible |
Remarque : L’utilisateur ansible doit également être présent sur les machines cibles..
5) Clé ssh Ansible
5.1) Se connecter en tant qu’utilisateur « ansible »
1 |
sudo -i -u ansible bash |
5.2) Vérification
1 |
whoami |
Le résultat devrait être le nom de l’utilisateur ansible.
5.3) Création d’une clé ssh
1 |
ssh-keygen |
Remarque : Créer un passphrase pour protéger la clé privée.
Les clés se trouvent dans ~/.ssh/ :
- id_rsa : Clé privée (A protéger et à ne surtout pas partager)
- id_rsa.pub : Clé publique (Clé à transmettre aux hôtes cibles pour permettre leur administration au travers de ssh)
5.4) Copie de la clé ssh sur une machine à administrer
1 |
ssh-copy-id ansible@srv1 |
Remarque : L’utilisateur ansible doit exister sur la machine cible.
5.5) Vérification
1 |
ssh ansible@srv1 |
La connexion devrait se faire sans renseigner le mot de passe de l’utilisateur ansible (seule la passphrase de la clé privée sera demandée).
Remarque : Pensez à rentrer la commande exit
pour vous déconnecter de la machine distante et revenir sur le serveur ansible.
6) Tester ansible
6.1) Ping d’une machine cible via ansible
1 |
ansible -i "srv1," all -u ansible -m ping |
-i : Liste des serveurs ou adresses IP des machines cibles (séparées par des virgules)
-k : Utilisez -k pour forcer la demande de mot de passe lors de la connexion ssh
7) Vérification clé ssh
Il est possible de désactiver la vérification de clé ssh qui génère une action utilisateur lors de la toute 1ère connexion ssh. Cela peut bloquer le lancement d’un playbook sur une nouvelle machine ajoutée dans l’inventaire.
Il est possible de paramétrer se comportement uniquement pour l’utilisateur, pour tout le système ou directement dans les variables d’inventaires. A vous de choisir.
7.1) Configuration (utilisateur)
1 |
nano ~/.ansible.cfg |
Contenu :
1 2 |
[defaults] host_key_checking = False |
7.2) Configuration (système)
1 |
sudo nano /etc/ansible/ansible.cfg |
Contenu :
1 2 |
[defaults] host_key_checking = False |
7.3) Configuration variables d’inventaire
1 |
ansible_ssh_common_args: '-o StrictHostKeyChecking=no' |
Voilà ! C’est terminé !
Vous pouvez maintenant automatiser des tâches grâce à Ansible.
Il ne reste plus qu’à :
- Créer votre 1er playbook grâce au tutoriel : Ansible – Créer un playbook.
- Utiliser la section commentaires pour me faire part de vos remarques ou problèmes rencontrés.
- Visiter la page de la documentation officielle pour aller encore plus loin.
- Faire un don pour soutenir notre travail
En savoir plus sur Jj World
Subscribe to get the latest posts sent to your email.
Laisser un commentaire