Installation et Inventaire

Cet article a été initialement écrit sur le blog-libre aujourd’hui fermé, certains liens dans l’article peuvent donc être morts.


On a donc besoin d’installer Ansible sur notre poste Serveur (comprendre qui pilotera les autres postes Clients). Sur Debian, on se connecte sur le serveur qui va héberger Ansible puis on lance les commandes suivantes :

aptitude install python-pip python-dev
pip install ansible

Pour mettre à jour Ansible (dans le futur), on lancera la commande suivante :

pip install --upgrade ansible

On vérifie que Ansible est bien installé :

ansible --version

Si vous avez des problèmes pour l’installation, je vous invite à aller sur la doc.

On a terminé pour la configuration du Serveur, passons aux Clients. Pour rappel, il faut uniquement un serveur SSH sur les postes Clients qui acceptent des connexions de notre Serveur.

Je précise de suite que j’utilise la méthode dite bourrin càd authentification par clé et en root pour la connexion via Ansible sur les Clients. Ce n’est pas ce que je recommande mais c’est ce qu’il y a de plus simple. Ansible permet évidemment de se connecter sous un autre utilisateur que root, permet l’utilisation de sudo, la possibilité de renseigner un password sur la ligne de commande etc. (voir ansible –help).

Maintenant, on va générer des clés sur notre Serveur et les copier sur les différents Clients que l’on souhaite administrer.

ssh-keygen -t rsa -b 4096
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.10
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.12
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 2222 root@192.168.1.14"
ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 2222 root@10.11.12.13"

On n’oublie pas préalablement de s’être connecté sur 192.168.1.10, 192.168.1.12, 192.168.1.14 et 10.11.12.13 pour modifier /etc/ssh/sshd_config suivi de service ssh restart afin de permettre la connexion root à partir de notre serveur hébergeant Ansible et d’ouvrir le firewall éventuellement.

On remplit maintenant le fichier /etc/ansible/hosts avec les différents Clients.

mkdir -p /etc/ansible
nano /etc/ansible/hosts
[test]
SRV-TEST

[home]
ADMIN ansible_connection=local
PC-PUPUCE
SRV-WEB ansible_ssh_host=10.11.12.13 ansible_ssh_port=2222
SRV-HOME:2222

[server]
SRV-WEB ansible_ssh_host=10.11.12.13 ansible_ssh_port=2222
SRV-HOME:2222

Tant qu’à faire, on fait ça bien et on rajoute les postes dans le fichier /etc/hosts.

nano /etc/hosts
192.168.1.10 SRV-TEST
192.168.1.12 PC-PUPUCE
192.168.1.14 SRV-HOME
10.11.12.13 SRV-WEB

Quelques explications sur le fichier /etc/ansible/hosts :
– ADMIN est le poste Serveur où est installé Ansible et qui va manager les Clients, on ne va donc pas utiliser une connexion SSH mais une connexion locale d’où le ansible_connection=local
– La notation SRV-HOME:2222 signifie une connexion SSH sur le port 2222, c’est exactement la même chose qu’écrire SRV-HOME ansible_ssh_port=2222, j’utilise les deux dans le fichier /etc/ansible/hosts uniquement dans le but d’être exhaustif
– [home] correspond à un groupe de postes. On pourra ainsi utiliser en ligne de commande des commandes comme ansible all -a « /sbin/reboot -t now » (tous les postes dans /etc/ansible/hosts), ansible home -a « /sbin/reboot -t now » (tous les postes dans le groupe home), ansible SRV-WEB « /sbin/reboot -t now » (uniquement le poste SRV-WEB)

On est maintenant prêt à jouer.

Les commentaires sont fermés.