Installer Ansible sur distribution Rocky

Je travaille sur la distribution linux depuis un moment avec une topologie créée GNS3
Après avoir démarré ma machine virtuelle, je configure son interface réseau pour pouvoir communiquer sur mon réseau. J’ai rajouté après coup une ligne après GATEWAY avec DNS1=172.16.30.3 (l’adresse de mon serveur DNS mais si vous n’en avez pas, ajouter un dns publique comme 1.1.1.1 ou 8.8.8.8)

Passons à la mise à jour et à l’upgrade :
yum update -y && yum upgrade -y
yum install epel-release -y && yum install ansible

Premièrement, on va créer un fichier host.yml. Ce fichier va permettre d’indiquer les différentes machines à utiliser avec ansible. Pour l’instant, nous allons faire un fichier simple avec all (tous) et toutes les ips de mes machines
nano hosts.yml

nano play_user_ansible.yml
Nous allons tester notre première commande pour voir si tout fonctionne :

Ensuite, nous allons tester que tout fonctionne à l’aide d’un premier playbook (livre de lecture en français, mais franchement, c’est plus classe en anglais) :

Première erreur, après quelques recherches, il s’agit d’un problème avec le key fingerprint. Nous pouvons le désactiver le fait d’accepter ou non les key fingerprint mais je préfère les accepter, je me suis donc connecter à chaque machine en ssh à la main afin d’accepter les keys.

Ensuite, on va créer un premier utilisateur spécial pour ansible qui n’existe sur aucune machine avec la commande suivante :
ansible all -i hosts.yml –user=billyit –ask-pass -m user -a ‘name=u_ansible / update_password=always password={{ « monpassword » | password_hash(\ »sha512\ ») }} »‘ -b -K
Alors la commande, elle demande :
all : sur tous les hôtes définis dans l’inventaire hosts.yml (-i hosts.yml)
–user=billyit –ask-pass: avec l’utilisateur billyit et en demandant de saisir le mot de passe
-m user : on utilise le module ansible « user »
-a : permet de donner les variables à utiliser
dans les variables à utiliser :
name=u_ansible : notre future utilisateur
update_password=always : mettra à jour le fichier /etc/passwd si les mots de passe diffèrent
password={{ « monpassword » | password_hash(\ »sha512\ ») }} : on passe « monpassword » dans la commande password_hash qui va le crypter



ansible all -i hosts.yml –user=billyit –ask-pass -m user -a ‘name=u_ansible / update_password=always password={{ « monpassword » | password_hash(\ »sha512\ ») }} » groups=wheel’ -b -K
J’ai refait ma commande afin d’inculre le groups=wheel
wheel est le groupe sudo de CentOS/Rocky !