Cheat Sheet dei moduli Ansible
Ansible è un potente strumento per l’automazione delle operazioni. Questo articolo introdurrà l’uso dei suoi moduli comuni.
Formato
Struttura di base del file
---
- hosts: production
remote_user: root
tasks:
- ···Inserisci i tuoi moduli sotto tasks.
Formato dei task
Formato a riga singola
- apt: pkg=vim state=presentFormato di mappatura (Mapping)
- apt:
pkg: vim
state: presentFormato scalare ripiegato (Folded Scalar)
- apt: >
pkg=vim
state=presentPuoi utilizzare uno qualsiasi dei formati sopra indicati per definire i task. Per dichiarazioni brevi è consigliato il formato a riga singola; per dichiarazioni più lunghe è consigliato il formato di mappatura.
Moduli
Aptitude
Gestione dei pacchetti
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noFile di pacchetto Deb
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"Gestione dei repository (Sorgenti software)
- apt_repository:
repo: "deb https://··· raring main"
state: presentChiave del repository
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentRelativo a Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesRiferimento: modulo git
Configurazione Git
- git_config:
name: user.email
scope: global # local | system
value: hi@example.comRiferimento: modulo git_config
Gestione degli utenti
- user:
state: present # Stato: presente
name: git # Nome utente
system: yes # Utente di sistema
shell: /bin/sh # Shell di login
groups: admin # Gruppi
comment: "Git Version Control" # CommentoRiferimento: modulo user
Gestione dei servizi
- service:
name: nginx # Nome del servizio
state: started # Stato: avviato
enabled: yes # Se abilitare all'avvioRiferimento: modulo service
Relativo a Shell
Comando shell
- shell: apt-get install nginx -yOpzioni extra
- shell: echo hello
args:
creates: /path/file # Salta se il file esiste
removes: /path/file # Salta se il file non esiste
chdir: /path # Passa a questa directory prima dell'esecuzioneEsempio di comandi su più righe
- shell: |
echo "hello there"
echo "multiple lines"Riferimento: modulo shell
Esecuzione di script
- script: /x/y/script.sh
args:
creates: /path/file # Salta se il file esiste
removes: /path/file # Salta se il file non esiste
chdir: /path # Passa a questa directory prima dell'esecuzioneRiferimento: modulo script
Operazioni sui file
Gestione dei file
- file:
path: /etc/dir
state: directory # Tipo: directory|file|link|hard|touch|absent
# Parametri opzionali:
owner: bin # Proprietario
group: wheel # Gruppo
mode: 0644 # Permessi
recurse: yes # Creazione ricorsiva
force: yes # Forza la creazione del link simbolicoRiferimento: modulo file
Copia di file
- copy:
src: /app/config/nginx.conf # File sorgente
dest: /etc/nginx/nginx.conf # Destinazione
# Parametri opzionali:
owner: user # Proprietario
group: user # Gruppo
mode: 0644 # Permessi
backup: yes # Se effettuare il backupRiferimento: modulo copy
Modelli (Templates)
- template:
src: config/redis.j2 # File sorgente del modello
dest: /etc/redis.conf # Destinazione
# Parametri opzionali:
owner: user # Proprietario
group: user # Gruppo
mode: 0644 # Permessi
backup: yes # Se effettuare il backupRiferimento: modulo template
Operazioni locali
Esecuzione locale
- name: Eseguire l'operazione localmente
local_action: shell echo helloOutput di debug
- debug:
msg: "Hello {{ var }}"Riferimento: modulo debug