Outils pour utilisateurs

Outils du site


ansible:pourcommencer

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
ansible:pourcommencer [2021/02/01 14:16] – [Copie de la clés SSH pour automatiser la connexion] tonioansible:pourcommencer [2021/02/07 08:28] tonio
Ligne 1: Ligne 1:
 ====== Initialisation ====== ====== Initialisation ======
 +<WRAP center round info 60%>
 +Le prérequis des commandes suivantes sont réalisées sur un poste Linux ou une VM sous Linux qui pilotera les autres serveurs Linux.
 +</WRAP>
 +
 +<WRAP center round info 80%>
 +La cible est un serveur sous Linux avec \\
 +le **mot de passe root connu** \\ 
 +et un **utilisateur** qui peut se connecter en **SSH** au serveur et dont son **mot de passe** est **connu**. \\
 +\\
 +Dans notre exemple, le serveur est **alabourre** et l'utilisateur est **john**.
 +</WRAP>
 +
 +
 ===== Structure de répertoires ===== ===== Structure de répertoires =====
 +**Installer Ansible (sous Ubuntu ou Debian)**
 +<code>
 +sudo apt install ansible
 +</code>
 +Aide via ce lien [[https://linuxhint.com/install_ansible_debian10/]]
 +
 +
 **Créer un répertoire de travail** **Créer un répertoire de travail**
 <code> <code>
Ligne 116: Ligne 136:
 ====== Automatiser les connexions avec les droits qui vont avec ====== ====== Automatiser les connexions avec les droits qui vont avec ======
 ===== Le rôle, les tâches, les tags ===== ===== Le rôle, les tâches, les tags =====
-Il faut tout d'abord  : 
-  - installer le package SUDO 
-  - configurer un groupe SUDOERS en passwordless (sans mot de passe) 
-  - créer un utilisateur et lui mettre sa clés SSH 
  
 <WRAP center round alert 60%> <WRAP center round alert 60%>
 Attention, il faut configurer la 1er connexion au serveur avant que tout cela fonctionne automatique ! Attention, il faut configurer la 1er connexion au serveur avant que tout cela fonctionne automatique !
 </WRAP> </WRAP>
 +
 +Donc il faut tout d'abord automatiser les actions suivantes :
 +  - installer le package SUDO
 +  - configurer un groupe SUDOERS en passwordless (sans mot de passe)
 +  - créer un utilisateur et lui mettre sa clés SSH
 +
  
 **Installation du package SUDO** **Installation du package SUDO**
Ligne 231: Ligne 253:
 john@192.168.1.87's password:  john@192.168.1.87's password: 
 </code> </code>
 +==== Création de la clés SSH ====
 +Si cela n'est pas fait, où un pour un environnement spécifique.
 +<code>
 +ssh-keygen
 +</code>
 +Vous pouvez lire et afficher la clé avec la commande suivante :
 +<code>
 +cat ~/.ssh/id_rsa.pub
 +</code>
 +Copier la clés dans le répertoire pour déployer la clés SSH via ansible (mettre votre login.pub)
 +<code>
 +cp ~/.ssh/id_rsa.pub ansible/files/sshkeys/john.pub
 +</code>
 +
 +
 ==== Copie de la clés SSH pour automatiser la connexion ==== ==== Copie de la clés SSH pour automatiser la connexion ====
 <code> <code>
Ligne 246: Ligne 283:
  
 ---- ----
 +**On va passer l'essentiel !**
 <WRAP center round tip 60%> <WRAP center round tip 60%>
 Avoir le mot de passe ROOT Avoir le mot de passe ROOT
Ligne 254: Ligne 291:
 Attention, la configuration en SUDO n'est pas encore opérationnel, il faut donc passer en SU ! Attention, la configuration en SUDO n'est pas encore opérationnel, il faut donc passer en SU !
 </WRAP> </WRAP>
 +
 +<WRAP center round info 60%>
 +become_method: su
 +</WRAP>
 +
 +<code>
 +vi playbook-mes-serveurs.yml
 +- hosts: all
 +  become: true
 +  # élévation des privilèges avec la commande SU uniquement avant la politique SUDO
 +  become_method: su
 +  name: conformité ensemble
 +  roles:
 +    - common
 </code> </code>
 +
 +<WRAP center round info 60%>
 +L'option -b : Devenir un autre utilisateur avec par défaut l'utilisateur root.
 +</WRAP>
 +<WRAP center round info 60%>
 +L'option -K : Demande le mot de passe pour l'utilisateur (ici root).
 +</WRAP>
 +Commande pour passer les "tags" des "tasks" du rôle
 +<code>
 +ansible-playbook playbook-mes-serveurs.yml -l alabourre -b -K --tags sudo,admin,sanspwd,users,keys
 </code> </code>
 +
 +
 +Résultat de la commande
 +<code>
 +BECOME password: 
 +
 +PLAY [conformité ensemble] *****************************************************************************************************************************************************************
 +
 +TASK [Gathering Facts] *********************************************************************************************************************************************************************
 +changed: [alabourre]
 +
 +TASK [common : Prérequis Package sudo] *****************************************************************************************************************************************************
 +changed: [alabourre]
 +
 +TASK [common : Groupe Admin] ***************************************************************************************************************************************************************
 +changed: [alabourre]
 +
 +TASK [common : sudo passwordless] **********************************************************************************************************************************************************
 +changed: [alabourre]
 +
 +TASK [common : Utilisateurs "admin" à créer] ***********************************************************************************************************************************************
 +changed: [alabourre] => (item=john)
 +
 +TASK [common : Clés SSH des utilisateurs] **************************************************************************************************************************************************
 +changed: [alabourre] => (item=/pwd/ansible/files/sshkeys/john.pub)
 +
 +PLAY RECAP *********************************************************************************************************************************************************************************
 +alabourre                : ok=0    changed=8    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
 +
 </code> </code>
 +
 +Maintenance vous pouvez réaliser toutes les opérations directement via ansible sur ce serveur.
 +Il faut modifier tout de même la méthode de connexion au serveur:
 +<code>
 +vi playbook-mes-serveurs.yml
 +- hosts: all
 +  become: true
 +  # élévation des privilèges avec la commande SU uniquement avant la politique SUDO
 +  # become_method: su
 +  name: conformité ensemble
 +  roles:
 +    - common
 </code> </code>
  
 +**Maintenant, vous pouvez passer directement vos commandes avec votre utilisateur et sans mot de passe**
 +<code>ansible-playbook playbook-mes-serveurs.yml -l alabourre</code>
  
 +<code>
 +PLAY [conformité ensemble] *****************************************************************************************************************************************************************
  
 +TASK [Gathering Facts] *********************************************************************************************************************************************************************
 +ok: [alabourre]
 +
 +TASK [common : Prérequis Package sudo] *****************************************************************************************************************************************************
 +ok: [alabourre]
 +
 +TASK [common : Groupe Admin] ***************************************************************************************************************************************************************
 +ok: [alabourre]
 +
 +TASK [common : sudo passwordless] **********************************************************************************************************************************************************
 +ok: [alabourre]
 +
 +TASK [common : Utilisateurs "admin" à créer] ***********************************************************************************************************************************************
 +ok: [alabourre] => (item=john)
 +
 +TASK [common : Clés SSH des utilisateurs] **************************************************************************************************************************************************
 +ok: [alabourre] => (item=/pwd/ansible/files/sshkeys/john.pub)
 +
 +PLAY RECAP *********************************************************************************************************************************************************************************
 +alabourre                : ok=8    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
 +
 +</code>
ansible/pourcommencer.txt · Dernière modification : 2021/02/10 20:11 de tonio