Skip to main content

Installation & utilisation d'Ansible

Installation de l'environnement virtuel python

Création de l'utilisateur d'ansible :

adduser user-ansible

Installation de l'environnement virtuel python : 

apt-get install python-virtualenv sshpass

sshpass sert au bon fonctionnement de la suite !

Changement d'utilisateur : 

su - user-ansible

Lancement de l'environnement virtuel : 

virtualenv ansible4.6.0

Activation de l'environnement virtuel : 

source ansible4.6.0/bin/activate

Installation d'ansible

Installation d'ansible : 

pip install ansible==4.6.0

Est-ce que ansible est bien installé ?

ansible --version

image-1633383044412.png

Préparation de la communication avec les nodes

Définition des nodes :

Création du fichier de définition des nodes :

nano inventaire.ini
http1
bdd1

Modification de notre fichier host : 

nano /etc/hosts

On ajoute : 

# le node http1
34.88.193.243 http1
# le node bdd1
35.228.198.62 bdd1

Test du bon fonctionnement SSH des nodes :

ssh root@http1
ssh root@bdd1
Réalisation de pings sur nos nœuds : 
ansible -i inventaire.ini -m ping http1 --user root --ask-pass
ansible -i inventaire.ini -m ping bdd1 --user root --ask-pass

image-1633442685680.png

image-1633442696209.png

Installation de python à distance sur nos nœuds : 
ansible -i inventaire.ini -m raw -a "yum install -y python3" http1 --user root --ask-pass
ansible -i inventaire.ini -m raw -a "yum install -y python3" bdd1 --user root --ask-pass

Résultat :

image-1633385833649.png

Génération d'une chaine SHA-512 :
ansible localhost -i inventaire.ini -m debug -a "msg={{ 'passforce' | password_hash('sha512', 'sceretsalt') }}"
Résultat  :
localhost | SUCCESS => {
    "msg": "$6$sceretsalt$tBcfGEgifQpQZsg5CIGZ79XC55h5vHy7UWrys7cAF37KNCQQbm7iCvy58MlLQLaS2fLF6ZjqDVHhVrkMdRi0f0"
}

Notre clef SHA-512 a bien été générée !

Création d'un utilisateur nommé "ansible" sur tous les nodes : 
ansible -i inventaire.ini -m user -a 'name=user-ansible password=$6$sceretsalt$tBcfGEgifQpQZsg5CIGZ79XC55h5vHy7UWrys7cAF37KNCQQbm7iCvy58MlLQLaS2fLF6ZjqDVHhVrkMdRi0f0' --user root --ask-pass http1
ansible -i inventaire.ini -m user -a 'name=user-ansible password=$6$sceretsalt$tBcfGEgifQpQZsg5CIGZ79XC55h5vHy7UWrys7cAF37KNCQQbm7iCvy58MlLQLaS2fLF6ZjqDVHhVrkMdRi0f0' --user root --ask-pass bdd1

Résultat : 

image-1633442774848.png

image-1633442802700.png

Mettez évidement votre chaine à vous !

 

Ajout des droits de sudoers à nos nouveaux utilisateurs : 

ansible -i inventaire.ini -m user -a 'name=user-ansible groups=wheel append=yes ' --user root --ask-pass http1
ansible -i inventaire.ini -m user -a 'name=user-ansible groups=wheel append=yes ' --user root --ask-pass bdd1

image-1633443099352.png

Nos deux utilisateurs sont maintenant sudoers ! 

 

Génération de clefs SSH :

ssh-keygen -t ecdsa

image-1633443306629.png

Ajoutez la clé publique de l’utilisateur user-ansible sur les nodes :
ansible -i inventaire.ini -m authorized_key -a 'user=user-ansible state=present key="{{ lookup("file", "/home/user-ansible/.ssh/id_ecdsa.pub") }}"' --user user-ansible --ask-pass all