ansible:pourcommencer
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| ansible:pourcommencer [2021/02/07 08:27] – [Initialisation] tonio | ansible: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)** | ||
| - | < | + | < |
| sudo apt install ansible | sudo apt install ansible | ||
| </ | </ | ||
| Ligne 22: | Ligne 22: | ||
| **Créer un répertoire de travail** | **Créer un répertoire de travail** | ||
| - | < | + | < |
| mkdir ansible | mkdir ansible | ||
| </ | </ | ||
| Ligne 28: | Ligne 28: | ||
| Dans ce répertoire, | Dans ce répertoire, | ||
| - | < | + | < |
| drwxrwxr-x | drwxrwxr-x | ||
| drwxrwxr-x | drwxrwxr-x | ||
| Ligne 34: | Ligne 34: | ||
| </ | </ | ||
| **Création des répertoires de fonctionnement** | **Création des répertoires de fonctionnement** | ||
| - | < | + | < |
| mkdir files; mkdir inventory; mkdir roles ; | mkdir files; mkdir inventory; mkdir roles ; | ||
| </ | </ | ||
| Ligne 42: | Ligne 42: | ||
| ==== ansible.cfg ==== | ==== ansible.cfg ==== | ||
| - | Tout d' | + | Tout d' |
| - | < | + | < |
| - | ansible.cfg | + | |
| - | </ | + | |
| - | < | + | |
| vi ansible.cfg | vi ansible.cfg | ||
| </ | </ | ||
| On indique que l' | On indique que l' | ||
| - | < | + | < |
| + | [defaults] | ||
| inventory = inventory | inventory = inventory | ||
| - | </ | ||
| - | ==== requirements.yml ==== | ||
| - | Fichier optionnel faisant appel à des fonctions ou codes externes. | ||
| - | < | ||
| - | requirements.yml | ||
| </ | </ | ||
| - | |||
| - | < | ||
| - | |||
| - | - name: lae.proxmox | ||
| - | </ | ||
| ===== L' | ===== L' | ||
| 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. | ||
| - | < | + | < |
| vi inventory/ | vi inventory/ | ||
| </ | </ | ||
| - | < | + | < |
| [debianhome] | [debianhome] | ||
| alabourre ansible_host=192.168.1.1 | alabourre ansible_host=192.168.1.1 | ||
| - | ontime | + | #ontime |
| - | [debianfma] | + | #[debianfma] |
| - | alabourre1 ansible_host=392.568.321.1 | + | #alabourre1 ansible_host=392.568.321.1 |
| - | ontime2 | + | #ontime2 |
| </ | </ | ||
| ==== host_vars ==== | ==== host_vars ==== | ||
| Variables spécifiques par équipement | Variables spécifiques par équipement | ||
| - | < | + | < |
| - | < | + | < |
| common_admins: | common_admins: | ||
| - john | - john | ||
| Ligne 94: | Ligne 82: | ||
| ==== group_vars ==== | ==== group_vars ==== | ||
| Variables spécifiques par groupe d' | Variables spécifiques par groupe d' | ||
| - | < | + | < |
| </ | </ | ||
| - | < | + | < |
| common_admins: | common_admins: | ||
| - john | - john | ||
| Ligne 108: | Ligne 96: | ||
| ====== Premier playbook ====== | ====== Premier playbook ====== | ||
| - | Créer un fichier de type : < | + | Créer un fichier de type : < |
| - | < | + | < |
| - 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 ' | Dans le répertoire ' | ||
| - | < | + | < |
| mkdir -p roles/ | mkdir -p roles/ | ||
| mkdir -p roles/ | mkdir -p roles/ | ||
| + | vi roles/ | ||
| </ | </ | ||
| Ligne 136: | Ligne 125: | ||
| ====== 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' | ||
| - | - 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 ! | ||
| </ | </ | ||
| + | |||
| + | Donc il faut tout d' | ||
| + | - installer le package SUDO | ||
| + | - créer le groupe d' | ||
| + | - 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** | ||
| - | < | + | < |
| - name: Prérequis Package sudo | - name: Prérequis Package sudo | ||
| apt: | apt: | ||
| Ligne 156: | Ligne 148: | ||
| </ | </ | ||
| **Création du groupe admin SUDO** | **Création du groupe admin SUDO** | ||
| - | < | + | < |
| - name: Groupe Admin | - name: Groupe Admin | ||
| group: | group: | ||
| Ligne 163: | Ligne 155: | ||
| </ | </ | ||
| **Mise en place du fichier pour la configuration du passwordless** | **Mise en place du fichier pour la configuration du passwordless** | ||
| - | < | + | < |
| - name: sudo passwordless | - name: sudo passwordless | ||
| copy: | copy: | ||
| Ligne 174: | Ligne 166: | ||
| </ | </ | ||
| **Création des utilisateurs avec le shell bash** | **Création des utilisateurs avec le shell bash** | ||
| - | < | + | < |
| - name: Utilisateurs " | - name: Utilisateurs " | ||
| user: | user: | ||
| Ligne 185: | Ligne 177: | ||
| </ | </ | ||
| <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/ | + | Les utilisateur ayant le pouvoir du sudo sont à positionner dans le fichier |
| </ | </ | ||
| Exemple: [[ansible: | Exemple: [[ansible: | ||
| **Mise en place des clés SSH** | **Mise en place des clés SSH** | ||
| - | < | + | < |
| - name: Clés SSH des utilisateurs | - name: Clés SSH des utilisateurs | ||
| authorized_key: | authorized_key: | ||
| Ligne 200: | Ligne 192: | ||
| </ | </ | ||
| <WRAP center round tip 60%> | <WRAP center round tip 60%> | ||
| - | Les clés sont à positionner dans le répertoire : file/ | + | \\ |
| + | Les clés sont à positionner dans le répertoire : files/ | ||
| </ | </ | ||
| - | < | + | < |
| - name: Prérequis Package sudo | - name: Prérequis Package sudo | ||
| apt: | apt: | ||
| Ligne 243: | 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' | Lors de la 1er connexion, il y a un échange des clés qui doit être validé par l' | ||
| - | < | + | < |
| ssh 192.168.1.1 | ssh 192.168.1.1 | ||
| The authenticity of host ' | The authenticity of host ' | ||
| Ligne 253: | 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. | ||
| - | < | + | < |
| ssh-keygen | ssh-keygen | ||
| </ | </ | ||
| Vous pouvez lire et afficher la clé avec la commande suivante : | Vous pouvez lire et afficher la clé avec la commande suivante : | ||
| - | < | + | < |
| cat ~/ | cat ~/ | ||
| </ | </ | ||
| 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) | ||
| - | < | + | < |
| cp ~/ | cp ~/ | ||
| </ | </ | ||
| Ligne 267: | Ligne 260: | ||
| ==== Copie de la clés SSH pour automatiser la connexion ==== | ==== Copie de la clés SSH pour automatiser la connexion ==== | ||
| - | < | + | < |
| ssh-copy-id john@192.168.1.1 | ssh-copy-id john@192.168.1.1 | ||
| / | / | ||
| Ligne 287: | 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, | + | Attention, la configuration en SUDO n'est pas encore opérationnel, |
| </ | </ | ||
| - | |||
| <WRAP center round info 60%> | <WRAP center round info 60%> | ||
| - | become_method: | + | L' |
| </ | </ | ||
| - | |||
| - | < | ||
| - | 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: | ||
| - | name: conformité ensemble | ||
| - | roles: | ||
| - | - common | ||
| - | </ | ||
| - | |||
| <WRAP center round info 60%> | <WRAP center round info 60%> | ||
| L' | L' | ||
| Ligne 311: | Ligne 291: | ||
| L' | L' | ||
| </ | </ | ||
| - | Commande pour passer les " | + | Commande pour passer les " |
| - | < | + | < |
| - | ansible-playbook playbook-mes-serveurs.yml -l alabourre -b -K --tags sudo, | + | ansible-playbook playbook-mes-serveurs.yml -l alabourre |
| + | </ | ||
| + | __Ou toutes les taches/ | ||
| + | <code bash> | ||
| + | ansible-playbook playbook-mes-serveurs.yml -l alabourre --become-method=su -b -K | ||
| </ | </ | ||
| - | |||
| Résultat de la commande | Résultat de la commande | ||
| - | < | + | < |
| BECOME password: | BECOME password: | ||
| Ligne 346: | Ligne 329: | ||
| </ | </ | ||
| - | 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: | ||
| - | < | ||
| - | 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: | ||
| - | name: conformité ensemble | ||
| - | roles: | ||
| - | - common | ||
| - | </ | ||
| **Maintenant, | **Maintenant, | ||
| - | < | + | < |
| - | < | + | < |
| PLAY [conformité ensemble] ***************************************************************************************************************************************************************** | PLAY [conformité ensemble] ***************************************************************************************************************************************************************** | ||
| Ligne 387: | Ligne 358: | ||
| </ | </ | ||
| + | |||
| + | |||
| + | Maintenant, nous pouvons passer la suite à savoir le déploiement de configurations, | ||
| + | [[ansible: | ||
ansible/pourcommencer.1612686427.txt.gz · Dernière modification : 2021/02/07 08:27 de tonio
