AnsibleDevOpsAutomatisation

Ansible Galaxy et les roles : reutiliser pour ne pas reecrir

8 décembre 2025 · Sphinx-Digital

Les roles Ansible sont l’equivalent des modules dans un langage de programmation. Ils encapsulent une responsabilite et sont reutilisables.

Structure d’un role

roles/nginx/
|-- tasks/
|   +-- main.yml
|-- handlers/
|   +-- main.yml
|-- templates/
|   +-- nginx.conf.j2
|-- files/
|-- vars/
|   +-- main.yml
|-- defaults/
|   +-- main.yml
|-- meta/
|   +-- main.yml
+-- README.md

Creer un role avec ansible-galaxy

ansible-galaxy role init mon-role

Un role nginx minimal

# tasks/main.yml
- name: Installer nginx
  package:
    name: nginx
    state: present

- name: Deployer la configuration
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
  notify: restart nginx

- name: Activer nginx
  service:
    name: nginx
    state: started
    enabled: true

# handlers/main.yml
- name: restart nginx
  service:
    name: nginx
    state: restarted

Utiliser des roles depuis Galaxy

# Installer un role
ansible-galaxy install geerlingguy.docker

# requirements.yml
roles:
  - name: geerlingguy.docker
    version: 7.0.2
  - name: geerlingguy.nginx
    version: 3.2.0

ansible-galaxy install -r requirements.yml

Publier son role sur Galaxy

# meta/main.yml
galaxy_info:
  author: votre-nom
  description: Role pour configurer nginx
  license: MIT
  min_ansible_version: "2.12"
  platforms:
    - name: Ubuntu
      versions: ["22.04", "24.04"]
  galaxy_tags: ["nginx", "web", "proxy"]

Notre formation Ansible couvre la creation de roles avances.