Skip to content

Commit b45c8e5

Browse files
New translations 09-working-with-jinja-template.md (French)
1 parent 98aecb7 commit b45c8e5

File tree

1 file changed

+170
-0
lines changed

1 file changed

+170
-0
lines changed
Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
---
2+
title: Utilisation de Modèle Jinja
3+
author: Srinivas Nishant Viswanadha
4+
contributors: Steven Spencer, Antoine Le Morvan, Ganna Zhyrnova
5+
---
6+
7+
# Chapitre : Les Templates Jinja pour Ansible
8+
9+
## Introduction
10+
11+
Ansible fournit un moyen puissant et simple de gérer les configurations à l'aide de modèles Jinja via le module `template` intégré. Ce chapitre explore deux façons essentielles d'utiliser les modèles Jinja dans Ansible :
12+
13+
- ajouter des variables à un fichier de configuration
14+
- créer des fichiers complexes avec des boucles et des structures de données complexes.
15+
16+
## Ajouter des variables à un fichier de configuration
17+
18+
### Étape 1 : créer un modèle Jinja
19+
20+
Créez un fichier modèle Jinja, par exemple `sshd_config.j2`, avec des espaces réservés pour les variables :
21+
22+
```jinja
23+
# /path/to/sshd_config.j2
24+
25+
Port {{ ssh_port }}
26+
PermitRootLogin {{ permit_root_login }}
27+
# Add more variables as needed
28+
```
29+
30+
### Étape 2 : utiliser le module de template Ansible
31+
32+
Dans votre playbook Ansible, utilisez le module `template` pour restituer le modèle Jinja avec des valeurs spécifiques :
33+
34+
```yaml
35+
---
36+
- name: Generate sshd_config
37+
hosts: your_target_hosts
38+
tasks:
39+
- name: Template sshd_config
40+
template:
41+
src: /path/to/sshd_config.j2
42+
dest: /etc/ssh/sshd_config
43+
vars:
44+
ssh_port: 22
45+
permit_root_login: no
46+
# Add more variables as needed
47+
```
48+
49+
### Étape 3 : appliquer les modifications de configuration
50+
51+
Exécutez le playbook Ansible pour appliquer les modifications aux hôtes cibles :
52+
53+
```bash
54+
ansible-playbook your_playbook.yml
55+
```
56+
57+
Cette étape garantit que les modifications de configuration sont appliquées de manière cohérente sur l’ensemble de votre infrastructure.
58+
59+
## Création d'un fichier complet avec des boucles et des structures de données complexes
60+
61+
### Étape 1 : améliorer le modèle Jinja
62+
63+
Étendez votre modèle Jinja pour gérer les boucles et les structures de données complexes. Voici un exemple de configuration d'une application hypothétique avec plusieurs composants :
64+
65+
```jinja
66+
# /path/to/app_config.j2
67+
68+
{% for component in components %}
69+
[{{ component.name }}]
70+
Path = {{ component.path }}
71+
Port = {{ component.port }}
72+
# Add more configurations as needed
73+
{% endfor %}
74+
```
75+
76+
### Étape 2 : intégrer le module template Ansible
77+
78+
Dans votre playbook Ansible, intégrez le module `template` pour générer un fichier de configuration complet :
79+
80+
```yaml
81+
---
82+
- name: Generate Application Configuration
83+
hosts: your_target_hosts
84+
vars:
85+
components:
86+
- name: web_server
87+
path: /var/www/html
88+
port: 80
89+
- name: database
90+
path: /var/lib/db
91+
port: 3306
92+
# Add more components as needed
93+
tasks:
94+
- name: Template Application Configuration
95+
template:
96+
src: /path/to/app_config.j2
97+
dest: /etc/app/config.ini
98+
```
99+
100+
Exécutez le playbook Ansible pour appliquer les modifications aux hôtes cibles :
101+
102+
```bash
103+
ansible-playbook your_playbook.yml
104+
```
105+
106+
Cette étape garantit que les modifications de configuration sont appliquées de manière cohérente sur l’ensemble de votre infrastructure.
107+
108+
Le module Ansible `template` fournit un moyen d'utiliser les modèles Jinja pour générer dynamiquement des fichiers de configuration pendant l'exécution du playbook. Ce module vous permet de séparer la logique de configuration et les données, rendant vos playbooks Ansible plus flexibles et maintenables.
109+
110+
### Principales caractéristiques
111+
112+
1. **Rendu de modèle :**
113+
- Le module restitue des modèles Jinja pour créer des fichiers de configuration avec un contenu dynamique.
114+
- Les variables définies dans le playbook ou l'inventaire peuvent être injectées dans des modèles, permettant des configurations dynamiques.
115+
116+
2. **Utilisation de Jinja2 :**
117+
- Le module `template` exploite le moteur de création de modèles Jinja2, fournissant des fonctionnalités puissantes telles que des conditions, des boucles et des filtres pour une manipulation avancée des modèles.
118+
119+
3. **Chemins Source et de Destination :**
120+
- Spécifie le fichier modèle Jinja source et le chemin de destination pour le fichier de configuration généré.
121+
122+
4. \*\* Passage variable : \*\*
123+
- Les variables peuvent être transmises directement dans la tâche playbook ou chargées à partir de fichiers externes, permettant une génération de configuration flexible et dynamique.
124+
125+
5. **Exécution Idempotente :**
126+
- Le module `template` prend en charge l'exécution idempotente, garantissant que le modèle n'est appliqué que si des modifications sont détectées.
127+
128+
### Exemple de playbook snippet
129+
130+
```yaml
131+
---
132+
- name: Generate Configuration File
133+
hosts: your_target_hosts
134+
tasks:
135+
- name: Template Configuration File
136+
template:
137+
src: /path/to/template.j2
138+
dest: /etc/config/config_file
139+
vars:
140+
variable1: value1
141+
variable2: value2
142+
```
143+
144+
### Exemples d'utilisation
145+
146+
1. **Gestion de Configuration :**
147+
- Idéal pour gérer les configurations de système en générant dynamiquement des fichiers en fonction de paramètres spécifiques.
148+
149+
2. **Mise en Place d'Application :**
150+
- Utile pour créer des fichiers de configuration spécifiques à une application avec différents paramètres.
151+
152+
3. **Infrastructure sous Forme de Code :**
153+
- Facilite les pratiques d'infrastructure en tant que code en permettant des ajustements dynamiques des configurations en fonction de variables.
154+
155+
### Les bonnes pratiques
156+
157+
1. **Séparation des Thèmes :**
158+
- Confine la logique de configuration réelle dans les modèles Jinja, en la séparant de la structure principale du playbook.
159+
160+
2. **Contrôle de Version :**
161+
- Stocke les modèles Jinja dans des référentiels contrôlés en version pour un meilleur suivi et une meilleure collaboration.
162+
163+
3. **Testabilité :**
164+
- Permet de tester les modèles de manière indépendante pour vous assurer qu’ils produisent le résultat de configuration attendu.
165+
166+
En tirant parti du module `template`, les utilisateurs d'Ansible peuvent améliorer la gérabilité et la flexibilité des tâches de configuration, favorisant ainsi une approche plus rationalisée et efficace de la configuration du système et des applications.
167+
168+
### Références
169+
170+
[Ansible Template Module Documentation](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_module.html).

0 commit comments

Comments
 (0)