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=presentFormat de mappage (Mapping)
- apt:
pkg: vim
state: presentFormat scalaire replié (Folded Scalar)
- apt: >
pkg=vim
state=presentVous 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: noFichier 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: presentClé de dépôt
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentLié à 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: hi@example.comRé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é 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 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écutionRé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 symboliqueRé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 sauvegardeRé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 sauvegardeRéférence : module template
Opérations locales
Exécution locale
- name: Exécuter l'opération localement
local_action: shell echo helloSortie de débogage (Debug)
- debug:
msg: "Hello {{ var }}"Référence : module debug