Skip to content

Aide-mémoire des modules Ansible

Ansible est un outil puissant d’automatisation des opérations. Cet article présente l’utilisation de ses modules courants.

Format

Structure de base du fichier

---
- hosts: production
  remote_user: root
  tasks:
  - ···

Veuillez placer vos modules sous tasks.

Format de tâche

Format sur une seule ligne

- apt: pkg=vim state=present

Format de mappage (Mapping)

- apt:
    pkg: vim
    state: present

Format scalaire replié (Folded Scalar)

- apt: >
    pkg=vim
    state=present

Vous pouvez utiliser l’un des formats ci-dessus pour définir des tâches. Pour les déclarations courtes, le format sur une seule ligne est recommandé ; pour les déclarations plus longues, le format de mappage est recommandé.

Modules

Aptitude

Gestion des paquets

- apt:
    pkg: nodejs
    state: present # absent | latest
    update_cache: yes
    force: no

Fichier de paquet Deb

- apt:
    deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"

Gestion des dépôts (Sources logicielles)

- apt_repository:
    repo: "deb https://··· raring main"
    state: present

Clé de dépôt

- apt_key:
    id: AC40B2F7
    url: "http://···"
    state: present

Lié à Git

- git:
    repo: git://github.com/
    dest: /srv/checkout
    version: master
    depth: 10
    bare: yes

Référence : module git

Configuration Git

- git_config:
    name: user.email
    scope: global # local | system
    value: hi@example.com

Référence : module git_config

Gestion des utilisateurs

- user:
    state: present    # État : présent
    name: git        # Nom d'utilisateur
    system: yes      # Utilisateur système
    shell: /bin/sh   # Shell de connexion
    groups: admin    # Groupes
    comment: "Git Version Control"  # Commentaire

Référence : module user

Gestion des services

- service:
    name: nginx      # Nom du service
    state: started   # État : démarré
    enabled: yes     # Activer au démarrage

Référence : module service

Lié au Shell

Commande shell

- shell: apt-get install nginx -y

Options supplémentaires

- shell: echo hello
  args:
    creates: /path/file  # Ignorer si le fichier existe
    removes: /path/file  # Ignorer si le fichier n'existe pas
    chdir: /path        # Passer à ce répertoire avant l'exécution

Exemple de commandes multilignes

- shell: |
    echo "hello there"
    echo "multiple lines"

Référence : module shell

Exécution de script

- script: /x/y/script.sh
  args:
    creates: /path/file  # Ignorer si le fichier existe
    removes: /path/file  # Ignorer si le fichier n'existe pas  
    chdir: /path        # Passer à ce répertoire avant l'exécution

Référence : module script

Opérations de fichiers

Gestion des fichiers

- file:
    path: /etc/dir
    state: directory # Type : répertoire|fichier|lien|lien physique|touch|absent

    # Paramètres optionnels :
    owner: bin      # Propriétaire
    group: wheel    # Groupe
    mode: 0644      # Permissions
    recurse: yes    # Création récursive
    force: yes      # Forcer la création du lien symbolique

Référence : module file

Copie de fichier

- copy:
    src: /app/config/nginx.conf   # Fichier source
    dest: /etc/nginx/nginx.conf   # Emplacement cible

    # Paramètres optionnels :
    owner: user     # Propriétaire
    group: user     # Groupe
    mode: 0644      # Permissions
    backup: yes     # Effectuer une sauvegarde

Référence : module copy

Modèles (Templates)

- template:
    src: config/redis.j2       # Fichier source du modèle
    dest: /etc/redis.conf      # Emplacement cible

    # Paramètres optionnels :
    owner: user     # Propriétaire
    group: user     # Groupe
    mode: 0644      # Permissions
    backup: yes     # Effectuer une sauvegarde

Référence : module template

Opérations locales

Exécution locale

- name: Exécuter l'opération localement
  local_action: shell echo hello

Sortie de débogage (Debug)

- debug:
    msg: "Hello {{ var }}"

Référence : module debug