Cheat Sheet Module Ansible
Ansible este un instrument puternic de automatizare a operațiunilor IT. Acest articol va prezenta modul de utilizare a celor mai comune module ale sale.
Format
Structura de bază a fișierului
---
- hosts: production
remote_user: root
tasks:
- ···Vă rugăm să plasați modulele sub secțiunea tasks.
Formatul sarcinilor (Task Format)
Format pe o singură linie
- apt: pkg=vim state=presentFormat de mapare (Mapping)
- apt:
pkg: vim
state: presentFormat scalar pliat (Folded Scalar)
- apt: >
pkg=vim
state=presentPuteți utiliza oricare dintre formatele de mai sus pentru a defini sarcini. Pentru declarații scurte se recomandă formatul pe o singură linie; pentru declarații mai lungi se recomandă formatul de mapare.
Module
Aptitude
Gestionarea pachetelor
- apt:
pkg: nodejs
state: present # absent | latest
update_cache: yes
force: noFișier pachet Deb
- apt:
deb: "https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb"Gestionarea depozitelor (Surse software)
- apt_repository:
repo: "deb https://··· raring main"
state: presentCheie de depozit
- apt_key:
id: AC40B2F7
url: "http://···"
state: presentLegate de Git
- git:
repo: git://github.com/
dest: /srv/checkout
version: master
depth: 10
bare: yesReferință: modulul git
Configurare Git
- git_config:
name: user.email
scope: global # local | system
value: hi@example.comReferință: modulul git_config
Gestionarea utilizatorilor
- user:
state: present # Stare: prezent
name: git # Nume utilizator
system: yes # Utilizator de sistem
shell: /bin/sh # Shell de autentificare
groups: admin # Grupuri
comment: "Git Version Control" # ComentariuReferință: modulul user
Gestionarea serviciilor
- service:
name: nginx # Nume serviciu
state: started # Stare: pornit
enabled: yes # Activat la pornireReferință: modulul service
Legate de Shell
comandă shell
- shell: apt-get install nginx -yOpțiuni suplimentare
- shell: echo hello
args:
creates: /path/file # Omite dacă fișierul există
removes: /path/file # Omite dacă fișierul nu există
chdir: /path # Schimbă în acest director înainte de execuțieExemplu de comenzi pe mai multe linii
- shell: |
echo "hello there"
echo "multiple lines"Referință: modulul shell
Executarea scripturilor
- script: /x/y/script.sh
args:
creates: /path/file # Omite dacă fișierul există
removes: /path/file # Omite dacă fișierul nu există
chdir: /path # Schimbă în acest director înainte de execuțieReferință: modulul script
Operații pe fișiere
Gestionarea fișierelor
- file:
path: /etc/dir
state: directory # Tip: director|fișier|link|hardlink|touch|absent
# Parametri opționali:
owner: bin # Proprietar
group: wheel # Grup
mode: 0644 # Permisiuni
recurse: yes # Creare recursivă
force: yes # Forțează crearea linkului simbolicReferință: modulul file
Copierea fișierelor
- copy:
src: /app/config/nginx.conf # Fișier sursă
dest: /etc/nginx/nginx.conf # Locație țintă
# Parametri opționali:
owner: user # Proprietar
group: user # Grup
mode: 0644 # Permisiuni
backup: yes # Dacă se face backupReferință: modulul copy
Șabloane (Templates)
- template:
src: config/redis.j2 # Fișier sursă șablon
dest: /etc/redis.conf # Locație țintă
# Parametri opționali:
owner: user # Proprietar
group: user # Grup
mode: 0644 # Permisiuni
backup: yes # Dacă se face backupReferință: modulul template
Operații locale
Executarea locală
- name: Execută operația local
local_action: shell echo helloIeșire debug
- debug:
msg: "Hello {{ var }}"Referință: modulul debug