Skip to content

Commit a25f512

Browse files
committed
New drafts
1 parent f0dfb17 commit a25f512

File tree

2 files changed

+118
-0
lines changed

2 files changed

+118
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: Ansible - Précédence des variables
3+
tags: [ Ansible, ci-cd ]
4+
layout: post
5+
category: devops
6+
complexity: 1
7+
has_code: true
8+
disableComments: true
9+
---
10+
Ansible est un outil open-source d'automatisation de la gestion de configuration, du déploiement d'applications, voir de l'orchestration de tâches IT que j'utilise régulièrement pour le déploiement automatisé de configuration de serveurs ou de mise à jour d'application.
11+
12+
Ansible a plusieurs avantages à mon goût :
13+
- ne nécessite par d'installer un logiciel sur les nœuds/serveurs gérés.
14+
- syntaxe basée sur YAML que l'on retrouve dans de nombreux autres outils (bon, ce n'est pas forcément le meilleur choix).
15+
- description principalement de l'état final attendu plutôt que des étapes pour l'atteindre
16+
- documentation détaillée
17+
- composants facilement réutilisables (Rôles, Ansible Galaxy, etc.)
18+
19+
## Importance des variables dans Ansible
20+
21+
De part sa flexibilité, les variables dans Ansible jouent un rôle essentiel, elles permettent de rendre les `playbooks` et les `rôles` plus dynamique et réutilisable :
22+
23+
- permettent de définir des valeurs par défaut pour les `rôles`, les `playbooks`, les `hosts` (serveurs), les `inventories` (environnement).
24+
- le mécanisme de surcharge et de précédence permet sa grande flexibilité
25+
- factorisation et réutilisation des valeurs : réutilisation d'une valeur définie une seule fois
26+
- simplification de la maintenance, un bon découpage permet de retrouver les variables à mettre à jour rapidement en fonction des cas d'usages (upgrade de version vs. nouveau serveur)
27+
- sécurité avec `ansible vault` qui permet de crypter les variables sensibles
28+
- construction de variable à partir d'autres variables.
29+
30+
Exemple :
31+
32+
```yaml
33+
---
34+
- hosts: webservers
35+
vars:
36+
server_name: "example.com"
37+
deploy_path: "/var/www/html"
38+
tasks:
39+
- name: Deploy application
40+
copy:
41+
src: /local/path/to/app
42+
dest: "{{ deploy_path }}"
43+
- name: Configure server
44+
template:
45+
src: /local/path/to/{{ server_name }}.j2
46+
dest: /etc/nginx/sites-available/{{ server_name }}
47+
```
48+
49+
Ici, les variables `server_name` et `deploy_path` rendent le playbook plus facile à maintenir.
50+
51+
La documentation d'Ansible propose une douzaine d'emplacements où des variables peuvent être définies, si on ne comprend pas le principe sous-jacent et le fonctionnement de surcharge/précédence, on se retrouve vite perdu, avec des variables en conflits ou non définie quand on en a besoin.
52+
53+
C'est donc l'objectif de cet article, de vous aidez à y voir plus clair.
54+
55+
## Qu'est-ce que la Précédence des Variables ?
56+
57+
La documentation d'`Ansible` présente [22 niveaux de définition des variables](https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_variables.html#understanding-variable-precedence), mais quand on y regarde de plus prêt il y a un peu de redondance et certains niveaux sont très rarement utilisés.
58+
59+
Le principe général est de partir du niveau le plus générique (facilement surchargé), vers le niveau spécifique (qui surcharge tout ce qui a été définie précédemment).
60+
61+
### Principaux groupes de variables
62+
63+
- Role
64+
-
65+
66+
### Définition et concept
67+
### Pourquoi la précédence est-elle cruciale ?
68+
69+
## Les Niveaux de Précédence des Variables dans Ansible
70+
71+
### Variables de la ligne de commande
72+
### Variables des tâches
73+
### Variables des blocs
74+
### Variables des rôles
75+
### Variables des groupes d'inventaire
76+
### Variables des hôtes
77+
### Variables par défaut
78+
### Variables fact
79+
### Variables d'environnement
80+
### Variables de fichiers YAML et JSON
81+
### Variables de Playbooks
82+
## Exemples Pratiques de Précédence des Variables
83+
84+
### Exemple simple avec un Playbook
85+
### Utilisation des rôles et précédence des variables
86+
### Exemple avancé avec des groupes et des hôtes
87+
88+
## Résolution des Conflits de Variables
89+
90+
### Techniques pour éviter les conflits
91+
### Stratégies de résolution lors des conflits de variables
92+
### Utilisation de la fonction set_fact
93+
94+
## Bonnes Pratiques pour la Gestion des Variables
95+
96+
### Organisation des variables
97+
### Documentation des variables
98+
### Utilisation des namespaces
99+
## Outils et Ressources Complémentaires
100+
101+
### Modules Ansible utiles pour la gestion des variables
102+
### Documentation officielle d'Ansible
103+
### Communautés et forums de discussion
104+
## Conclusion
105+
106+
### Récapitulatif des points clés
107+
### Importance de la maîtrise de la précédence des variables
108+
### Encouragement à l'expérimentation et à l'apprentissage continu
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
title: Ansible - Architecture des dossiers
3+
tags: [ Ansible, CI-CD ]
4+
layout: post
5+
category: devops
6+
complexity: 1
7+
---
8+
Ansible est une solution de déploiement de serveurs et d'applications couramment utilisé dans les projets de CI-CD. Il permet, entre autre, de définir des recettes réutilisables via des `playbooks` et des `roles`.
9+
10+
L'objectif de cet article n'est pas de décrire le fonctionnement d'Ansible, la documentation officiel et de nombreux blogs le font déjà très bien. Il s'agit plutôt de vous proposer une arborescence de répertoire qui permet de structurer correctement votre projet.

0 commit comments

Comments
 (0)