vars
Dans Ansible, vous pouvez définir des variables dans un fichier séparé et les inclure dans vos playbooks. Cela permet de séparer la logique de votre playbook des valeurs spécifiques des variables, ce qui facilite la gestion et la réutilisation des variables.
Voici comment vous pouvez définir des variables dans un fichier et les utiliser dans un playbook Ansible :
Étape 1 : Créer un fichier de variables
Créez un fichier YAML pour définir vos variables. Par exemple, créez un fichier nommé vars.yml :
# vars.yml
webserver_name: "MyWebServer"
webserver_port: 80
db_host: "localhost"
db_name: "mydatabase"
db_user: "dbuser"
db_password: "dbpassword"
Étape 2 : Inclure le fichier de variables dans votre playbook
Créez un playbook Ansible et incluez le fichier de variables en utilisant la directive vars_files. Par exemple, créez un fichier nommé site.yml :
---
- name: Deploy web application
hosts: webservers
become: yes
vars_files:
- vars.yml
tasks:
- name: Print webserver name
debug:
msg: "Webserver name is {{ webserver_name }}"
- name: Print webserver port
debug:
msg: "Webserver port is {{ webserver_port }}"
- name: Print database host
debug:
msg: "Database host is {{ db_host }}"
- name: Print database name
debug:
msg: "Database name is {{ db_name }}"
- name: Print database user
debug:
msg: "Database user is {{ db_user }}"
- name: Print database password
debug:
msg: "Database password is {{ db_password }}"
Étape 3 : Exécuter le playbook
Exécutez le playbook avec la commande ansible-playbook :
ansible-playbook -i inventory.ini site.yml
Explications
vars_files: Cette directive permet d'inclure des fichiers de variables dans votre playbook. Vous pouvez spécifier plusieurs fichiers de variables si nécessaire.{{ variable_name }}: Cette syntaxe est utilisée pour référencer les variables définies dans le fichier de variables.
Exemple complet
Voici un exemple complet avec un fichier d'inventaire, un fichier de variables, et un playbook :
Fichier d'inventaire (inventory.ini)
[webservers]
your_target_machine ansible_host=your_target_machine_ip ansible_user=your_username ansible_ssh_private_key_file=/path/to/your/private/key
Fichier de variables (vars.yml)
webserver_name: "MyWebServer"
webserver_port: 80
db_host: "localhost"
db_name: "mydatabase"
db_user: "dbuser"
db_password: "dbpassword"
Playbook (site.yml)
---
- name: Deploy web application
hosts: webservers
become: yes
vars_files:
- vars.yml
tasks:
- name: Print webserver name
debug:
msg: "Webserver name is {{ webserver_name }}"
- name: Print webserver port
debug:
msg: "Webserver port is {{ webserver_port }}"
- name: Print database host
debug:
msg: "Database host is {{ db_host }}"
- name: Print database name
debug:
msg: "Database name is {{ db_name }}"
- name: Print database user
debug:
msg: "Database user is {{ db_user }}"
- name: Print database password
debug:
msg: "Database password is {{ db_password }}"
En suivant ces étapes, vous pouvez facilement gérer et réutiliser des variables dans vos playbooks Ansible.