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édenteProchaine révisionLes deux révisions suivantes | ||
ansible:pourcommencer [2021/02/07 08:29] – [Le rôle, les tâches, les tags] tonio | ansible:pourcommencer [2021/02/07 13:36] – [requirements.yml] 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 | ||
Ligne 84: | Ligne 72: | ||
==== 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/ | ||
Ligne 149: | Ligne 137: | ||
**Installation du package SUDO** | **Installation du package SUDO** | ||
- | < | + | < |
- name: Prérequis Package sudo | - name: Prérequis Package sudo | ||
apt: | apt: | ||
Ligne 159: | Ligne 147: | ||
</ | </ | ||
**Création du groupe admin SUDO** | **Création du groupe admin SUDO** | ||
- | < | + | < |
- name: Groupe Admin | - name: Groupe Admin | ||
group: | group: | ||
Ligne 166: | Ligne 154: | ||
</ | </ | ||
**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 177: | Ligne 165: | ||
</ | </ | ||
**Création des utilisateurs avec le shell bash** | **Création des utilisateurs avec le shell bash** | ||
- | < | + | < |
- name: Utilisateurs " | - name: Utilisateurs " | ||
user: | user: | ||
Ligne 188: | Ligne 176: | ||
</ | </ | ||
<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 203: | Ligne 191: | ||
</ | </ | ||
<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 246: | Ligne 235: | ||
==== 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 256: | Ligne 245: | ||
==== 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 270: | Ligne 259: | ||
==== 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 290: | Ligne 279: | ||
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 314: | Ligne 290: | ||
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 349: | Ligne 328: | ||
</ | </ | ||
- | 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 390: | Ligne 357: | ||
</ | </ | ||
+ | |||
+ | |||
+ | Maintenant, nous pouvons passer la suite à savoir le déploiement de configurations, | ||
+ | [[ansible: |
ansible/pourcommencer.txt · Dernière modification : 2021/02/10 20:11 de tonio