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:32] – [Copie de la clés SSH pour automatiser la connexion] tonioansible:pourcommencer [2021/02/07 08:38] – [Le rôle, les tâches, les tags] 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
 +  - créer le groupe d'utilisateurs qui aura le droit de se connecter sans mot de passe
 +  - 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**
-<code>+<code python>
 - name: Prérequis Package sudo - name: Prérequis Package sudo
   apt:   apt:
Ligne 136: Ligne 159:
 </code> </code>
 **Création du groupe admin SUDO** **Création du groupe admin SUDO**
-<code>+<code python>
 - name: Groupe Admin - name: Groupe Admin
   group:   group:
Ligne 143: Ligne 166:
 </code> </code>
 **Mise en place du fichier pour la configuration du passwordless** **Mise en place du fichier pour la configuration du passwordless**
-<code>    +<code python>    
 - name: sudo passwordless - name: sudo passwordless
   copy:   copy:
Ligne 154: Ligne 177:
 </code> </code>
 **Création des utilisateurs avec le shell bash** **Création des utilisateurs avec le shell bash**
-<code>  +<code python>  
 - name: Utilisateurs "admin" à créer - name: Utilisateurs "admin" à créer
   user:   user:
Ligne 165: Ligne 188:
 </code>   </code>  
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Les utilisateur ayant le pouvoir du sudo sont à positionner dans le fichier HOSTAME.yml (lié au nom décrit dans le fichier inventory/seveursdebian.yml) dans le répertoire inventory/host_vars/+Les utilisateur ayant le pouvoir du sudo sont à positionner dans le fichier **HOSTAME.yml** (lié au nom décrit dans le fichier inventory/seveursdebian.yml) dans le répertoire inventory/host_vars/ dans notre exemple **inventory/host_vars/alabourre.yml**
 </WRAP> </WRAP>
 Exemple: [[ansible:pourcommencer#host_vars|host_vars/alabourre.yml]] Exemple: [[ansible:pourcommencer#host_vars|host_vars/alabourre.yml]]
  
 **Mise en place des clés SSH** **Mise en place des clés SSH**
-<code>    +<code python>    
 - name: Clés SSH des utilisateurs - name: Clés SSH des utilisateurs
   authorized_key:   authorized_key:
Ligne 180: Ligne 203:
 </code>     </code>    
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Les clés sont à positionner dans le répertoire : file/sshkeys/    +\\ 
 +Les clés sont à positionner dans le répertoire : files/sshkeys/    
 </WRAP> </WRAP>
  
-<file>+<file python roles/common/tasks/main.yml>
 - name: Prérequis Package sudo - name: Prérequis Package sudo
   apt:   apt:
Ligne 231: Ligne 255:
 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 254: Ligne 293:
 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> <code>
 vi playbook-mes-serveurs.yml vi playbook-mes-serveurs.yml
 - hosts: all - hosts: all
   become: true   become: true
-  # élévation des privilèges avec la commande SU+  # élévation des privilèges avec la commande SU uniquement avant la politique SUDO
   become_method: su   become_method: su
   name: conformité ensemble   name: conformité ensemble
Ligne 267: Ligne 311:
 <WRAP center round info 60%> <WRAP center round info 60%>
 L'option -b : Devenir un autre utilisateur avec par défaut l'utilisateur root. 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). L'option -K : Demande le mot de passe pour l'utilisateur (ici root).
 </WRAP> </WRAP>
Ligne 306: Ligne 352:
 Maintenance vous pouvez réaliser toutes les opérations directement via ansible sur ce serveur. 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: Il faut modifier tout de même la méthode de connexion au serveur:
-</code>+<code>
 vi playbook-mes-serveurs.yml vi playbook-mes-serveurs.yml
 - hosts: all - hosts: all
   become: true   become: true
-  # élévation des privilèges avec la commande SU+  # élévation des privilèges avec la commande SU uniquement avant la politique SUDO
   # become_method: su   # become_method: su
   name: conformité ensemble   name: conformité ensemble
Ligne 317: Ligne 363:
 </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