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
ansible:pourcommencer [2021/02/07 08:31] – [Le rôle, les tâches, les tags] tonioansible:pourcommencer [2021/02/10 20:11] (Version actuelle) – [Premier rôle] tonio
Ligne 15: Ligne 15:
 ===== Structure de répertoires ===== ===== Structure de répertoires =====
 **Installer Ansible (sous Ubuntu ou Debian)** **Installer Ansible (sous Ubuntu ou Debian)**
-<code>+<code bash>
 sudo apt install ansible sudo apt install ansible
 </code> </code>
Ligne 22: Ligne 22:
  
 **Créer un répertoire de travail** **Créer un répertoire de travail**
-<code>+<code bash>
 mkdir ansible mkdir ansible
 </code> </code>
Ligne 28: Ligne 28:
  
 Dans ce répertoire, vous aurez tous vos fichiers pour travailler à savoir Dans ce répertoire, vous aurez tous vos fichiers pour travailler à savoir
-<code>+<code bash>
 drwxrwxr-x  3 user user 4,0K janv. 31 14:38 files drwxrwxr-x  3 user user 4,0K janv. 31 14:38 files
 drwxrwxr-x  4 user user 4,0K janv. 31 14:46 inventory drwxrwxr-x  4 user user 4,0K janv. 31 14:46 inventory
Ligne 34: Ligne 34:
 </code> </code>
 **Création des répertoires de fonctionnement** **Création des répertoires de fonctionnement**
-<code>+<code bash>
 mkdir files; mkdir inventory; mkdir roles ; mkdir files; mkdir inventory; mkdir roles ;
 </code> </code>
Ligne 42: Ligne 42:
 ==== ansible.cfg ==== ==== ansible.cfg ====
  
-Tout d'abord le fichier le plus important +Tout d'abord le fichier le plus important **ansible.cfg** 
-<code> +<code bash>
-ansible.cfg +
-</code> +
-<code>+
 vi ansible.cfg vi ansible.cfg
 </code> </code>
 On indique que l'inventaire se situe dans le répertoire "inventory" qui sera dans notre répertoire de travail. On indique que l'inventaire se situe dans le répertoire "inventory" qui sera dans notre répertoire de travail.
-<code>[defaults]+<code python> 
 +[defaults]
 inventory = inventory inventory = inventory
-</code> 
-==== requirements.yml ==== 
-Fichier optionnel faisant appel à des fonctions ou codes externes. 
-<code> 
-requirements.yml 
 </code> </code>
  
- 
-<code>vi requirements.yml  
- 
-- name: lae.proxmox 
-</code> 
  
 ===== L'inventaire ===== ===== L'inventaire =====
Ligne 69: Ligne 57:
 Cela est tout à fait arbitraire: cela par OS, par type de service, par lieux, par client, etc. Cela est tout à fait arbitraire: cela par OS, par type de service, par lieux, par client, etc.
  
-<code>+<code bash>
 vi inventory/serveursdebian.yml vi inventory/serveursdebian.yml
 </code> </code>
  
-<code>+<code python>
 [debianhome] [debianhome]
 alabourre ansible_host=192.168.1.1 alabourre ansible_host=192.168.1.1
-ontime    ansible_host=192.168.1.2 +#ontime    ansible_host=192.168.1.2 
-[debianfma] +#[debianfma] 
-alabourre1 ansible_host=392.568.321.1 +#alabourre1 ansible_host=392.568.321.1 
-ontime2    ansible_host=392.568.321.2+#ontime2    ansible_host=392.568.321.2
 </code> </code>
  
 ==== host_vars ==== ==== host_vars ====
 Variables spécifiques par équipement Variables spécifiques par équipement
-<code>vi inventory/host_vars/alabourre.yml</code> +<code bash>vi inventory/host_vars/alabourre.yml</code> 
-<code>+<code python>
 common_admins: common_admins:
   - john   - john
Ligne 94: Ligne 82:
 ==== group_vars ==== ==== group_vars ====
 Variables spécifiques par groupe d'équipements (le fameux fichier YML dans inventory) Variables spécifiques par groupe d'équipements (le fameux fichier YML dans inventory)
-<code>vi inventory/group_vars/proxmox.yml +<code bash>vi inventory/group_vars/proxmox.yml 
 </code> </code>
  
-<code>+<code python>
 common_admins: common_admins:
   - john   - john
Ligne 108: Ligne 96:
 ====== Premier playbook ====== ====== Premier playbook ======
  
-Créer un fichier de type : <code>vi playbook-mes-serveurs.yml </code>+Créer un fichier de type : <code bash>vi playbook-mes-serveurs.yml </code>
  
  
-<code>+<code python>
 - hosts: proxmox - hosts: proxmox
   become: true   become: true
Ligne 127: Ligne 115:
 Et oui, le playbook appelle des rôles. Et un rôle appelle des taches (tasks). \\ Et oui, le playbook appelle des rôles. Et un rôle appelle des taches (tasks). \\
 Dans le répertoire 'roles', on doit créer le rôle **commun** que l'on appelle dans le playbook! Dans le répertoire 'roles', on doit créer le rôle **commun** que l'on appelle dans le playbook!
-<code>+<code bash>
 mkdir -p roles/common/tasks/ mkdir -p roles/common/tasks/
 mkdir -p roles/common/defaults/ mkdir -p roles/common/defaults/
 +vi roles/common/tasks/main.ymkl
 </code> </code>
  
Ligne 149: Ligne 138:
  
 **Installation du package SUDO** **Installation du package SUDO**
-<code>+<code python>
 - name: Prérequis Package sudo - name: Prérequis Package sudo
   apt:   apt:
Ligne 159: Ligne 148:
 </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 166: Ligne 155:
 </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 177: Ligne 166:
 </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 188: Ligne 177:
 </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/ dans notre exemple inventory/host_vars/alabourre.yml+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 203: Ligne 192:
 </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 246: Ligne 236:
 ==== Connexion avec un utilisateur ==== ==== Connexion avec un utilisateur ====
 Lors de la 1er connexion, il y a un échange des clés qui doit être validé par l'utilisateur. Lors de la 1er connexion, il y a un échange des clés qui doit être validé par l'utilisateur.
-<code>+<code bash>
 ssh 192.168.1.1 ssh 192.168.1.1
 The authenticity of host '192.168.1.87 (192.168.1.1)' can't be established. The authenticity of host '192.168.1.87 (192.168.1.1)' can't be established.
Ligne 256: Ligne 246:
 ==== Création de la clés SSH ==== ==== Création de la clés SSH ====
 Si cela n'est pas fait, où un pour un environnement spécifique. Si cela n'est pas fait, où un pour un environnement spécifique.
-<code>+<code bash>
 ssh-keygen ssh-keygen
 </code> </code>
 Vous pouvez lire et afficher la clé avec la commande suivante : Vous pouvez lire et afficher la clé avec la commande suivante :
-<code>+<code bash>
 cat ~/.ssh/id_rsa.pub cat ~/.ssh/id_rsa.pub
 </code> </code>
 Copier la clés dans le répertoire pour déployer la clés SSH via ansible (mettre votre login.pub) Copier la clés dans le répertoire pour déployer la clés SSH via ansible (mettre votre login.pub)
-<code>+<code bash>
 cp ~/.ssh/id_rsa.pub ansible/files/sshkeys/john.pub cp ~/.ssh/id_rsa.pub ansible/files/sshkeys/john.pub
 </code> </code>
Ligne 270: Ligne 260:
  
 ==== Copie de la clés SSH pour automatiser la connexion ==== ==== Copie de la clés SSH pour automatiser la connexion ====
-<code>+<code bash>
 ssh-copy-id john@192.168.1.1 ssh-copy-id john@192.168.1.1
 /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
Ligne 290: Ligne 280:
 Déploiement de la configuration pour automatiser les connexions Déploiement de la configuration pour automatiser les connexions
 <WRAP center round important 60%> <WRAP center round important 60%>
-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%> <WRAP center round info 60%>
-become_method: su+L'option --become-method=su : Permet de forcer la méthode d'élévation de privilège par défaut SUDO.
 </WRAP> </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> 
- 
 <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.
Ligne 314: Ligne 291:
 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>
-Commande pour passer les "tags" des "tasks" du rôle +Commande pour passer les "tags" des "tasks" du rôle (pour vérifier/déboguer) 
-<code> +<code bash
-ansible-playbook playbook-mes-serveurs.yml -l alabourre -b -K --tags sudo,admin,sanspwd,users,keys+ansible-playbook playbook-mes-serveurs.yml -l alabourre --become-method=su -b -K --tags sudo,admin,sanspwd,users,keys 
 +</code> 
 +__Ou toutes les taches/tasks:__ 
 +<code bash> 
 +ansible-playbook playbook-mes-serveurs.yml -l alabourre --become-method=su -b -K 
 </code> </code>
- 
  
 Résultat de la commande Résultat de la commande
-<code>+<code bash>
 BECOME password:  BECOME password: 
  
Ligne 349: Ligne 329:
 </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> 
  
 **Maintenant, vous pouvez passer directement vos commandes avec votre utilisateur et sans mot de passe** **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 bash>ansible-playbook playbook-mes-serveurs.yml -l alabourre</code>
  
-<code>+<code bash>
 PLAY [conformité ensemble] ***************************************************************************************************************************************************************** PLAY [conformité ensemble] *****************************************************************************************************************************************************************
  
Ligne 390: Ligne 358:
  
 </code> </code>
 +
 +
 +Maintenant, nous pouvons passer la suite à savoir le déploiement de configurations, packages pour un serveur ou un ensemble de serveurs. Dans le cadre d'ansible, nous réalisons des mises en conformité, à savoir l'on écrase ou l'on impose le référentiel qui est dans ansible.
 +[[ansible:lasuite|ansible:lasuite]]
ansible/pourcommencer.1612686694.txt.gz · Dernière modification : 2021/02/07 08:31 de tonio