[INFO] Création du rôle

This commit is contained in:
pulsar89.5 2022-10-18 00:41:30 +02:00
commit 66ac297cc7
7 changed files with 163 additions and 0 deletions

75
README.md Normal file
View File

@ -0,0 +1,75 @@
# role_ansible
Rôle de déploiement d'ansible.
## Variables
Afin de ne pas rentrer en conflit avec les variables d'ansible, le variable son préfixer par elbisna soit ansible écrit en partant de la fin.
### elbisna_prerequisites
Liste des paquets pré-requis.
<span style="text-decoration: underline">Valeur par défaut:</span> `["python3-pip"]`
### elbisna_pip_packages
Liste des paquets pip nécessaire.
<span style="text-decoration: underline">Valeur par défaut:</span> `["ansible", "netaddr"]`
### elbisna_vault_passwd
Contient le mot de passe vault.
<span style="text-decoration: underline">Valeur par défaut:</span> aucune
### elbisna_user
Utilisateur de déploiement d'ansible.
<span style="text-decoration: underline">Valeur par défaut:</span> aucune
### elbisna_group
Groupe de déploiement d'ansible.
<span style="text-decoration: underline">Valeur par défaut:</span> aucune
## Exemple d'utilisation
### inventory.yml
```yaml
---
all:
hosts:
host1.ykn.local:
```
### group_vars/all.yml
```yaml
---
elbisna_vault_passwd: !vault |
$ANSIBLE_VAULT;1.1;AES256
31383335306534333462613832646537376232386465643262306134653931383863336133306561
3964303562336532393334343530636161343366656539620a326337376232623163323439303735
39656634356366306361366537663939653336323432646335656230663133393039343638363536
6565336166666261350a343937373733396131623962303237316661666539653432326136306239
3538
```
### playbook.yml
```yaml
---
- hosts: 'all'
roles:
- name: ansible
```

14
defaults/main.yml Normal file
View File

@ -0,0 +1,14 @@
---
# defaults file for ansible
elbisna_prerequisites:
- python3-pip
elbisna_pip_packages:
- ansible
- netaddr
elbisna_vault_passwd: ""
elbisna_user: ""
elbisna_group: ""

15
meta/main.yml Normal file
View File

@ -0,0 +1,15 @@
galaxy_info:
namespace: ykn
author: pulsar89.5
description: Rôle de déploiement d'ansible
license: GPL-3.0-or-later
min_ansible_version: '2.1'
platforms:
- name: Debian
versions:
- all
dependencies: []

22
tasks/configuration.yml Normal file
View File

@ -0,0 +1,22 @@
---
# tasks file for ansible
- name: Déployer le mot de passe vault
ansible.builtin.copy:
dest: "~{{ elbisna_user }}/.ansible_vault_passwd"
content: "{{ elbisna_vault_passwd }}"
owner: "{{ elbisna_user }}"
group: "{{ elbisna_group }}"
mode: u=rw,g=,o=
when: elbisna_vault_passwd | length > 0
become: true
diff: false
- name: Déployer la configuration
ansible.builtin.template:
src: ansible.cfg.j2
dest: "~{{ elbisna_user }}/.ansible.cfg"
owner: "{{ elbisna_user }}"
group: "{{ elbisna_group }}"
mode: u=rw,g=r,o=r
become: true

13
tasks/installation.yml Normal file
View File

@ -0,0 +1,13 @@
---
# tasks file for ansible
- name: Installer les prérequis
ansible.builtin.apt:
install_recommends: false
name: "{{ elbisna_prerequisites }}"
become: true
- name: Installer ansible
ansible.builtin.pip:
name: "{{ elbisna_pip_packages }}"
become: true

10
tasks/main.yml Normal file
View File

@ -0,0 +1,10 @@
---
# tasks file for ansible
- name: Importer les tâches d'installation
tags: installation
ansible.builtin.import_tasks: installation.yml
- name: Importer les tâches de configuration
tags: configuration
ansible.builtin.import_tasks: configuration.yml

14
templates/ansible.cfg.j2 Normal file
View File

@ -0,0 +1,14 @@
# {{ ansible_managed }}
[defaults]
inventory = inventory.yml
host_key_checking = False
inject_facts_as_vars = False
remote_user = ansible
vault_password_file = ${HOME}/.ansible_vault_passwd
[inventory]
enable_plugins = yaml
[diff]
always = yes