Skip to content

Aide-mémoire des modules Ansible

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

Format

Structure de fichier de base

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

Veuillez placer vos modules sous tasks.

Format des tâches

Format sur une seule ligne

- apt: pkg=vim state=present

Format de mappage (Mapping)

- apt:
    pkg: vim
    state: present

Format scalaire replié

- apt: >
    pkg=vim
    state=present

Vous pouvez utiliser n’importe lequel des formats ci-dessus pour définir des tâches. Le format sur une seule ligne est recommandé pour les déclarations courtes, et le format de mappage pour les déclarations plus longues.

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

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

Clé de dépôt

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

Liés à 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: [email protected]

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és 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 commande multiligne

- 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 sur les fichiers

Gestion des fichiers

- file:
    path: /etc/dir
    state: directory # Type : directory|file|link|hard|touch|absent

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

Référence : module file

Copie de fichiers

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


    # Paramètres optionnels :
    owner: user     # Propriétaire
    group: user     # Groupe
    mode: 0644      # Permissions
    backup: yes     # Sauvegarde si existe

Référence : module copy

Modèle (Template)

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

    # Paramètres optionnels :
    owner: user     # Propriétaire
    group: user     # Groupe
    mode: 0644      # Permissions
    backup: yes     # Sauvegarde si existe

Référence : module template

Actions locales

Exécution locale

- name: Exécuter localement
  local_action: shell echo hello

Sortie de débogage (Debug)

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

Référence : module debug