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:39] 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>
Ligne 76: Ligne 64:
 [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 python> <code python>
 common_admins: common_admins:
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>
  
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>
  
  
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 247: 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 257: 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 271: 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 291: 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 315: 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 350: 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 391: 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.1612687157.txt.gz · Dernière modification : 2021/02/07 08:39 de tonio