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=presentFormat de mappage (Mapping)
- apt:
pkg: vim
state: presentFormat scalaire replié
- apt: >
pkg=vim
state=presentVous 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: noFichier 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: presentClé de dépôt
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentLiés à Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesRé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" # CommentaireRéférence : module user
Gestion des services
- service:
name: nginx # Nom du service
state: started # État : démarré
enabled: yes # Activer au démarrageRéférence : module service
Liés au Shell
Commande shell
- shell: apt-get install nginx -yOptions 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écutionExemple 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écutionRé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 symboliqueRé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 existeRé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 existeRéférence : module template
Actions locales
Exécution locale
- name: Exécuter localement
local_action: shell echo helloSortie de débogage (Debug)
- debug:
msg: "Hello {{ var }}"Référence : module debug