Skip to content

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=present

Format de mapare (Mapping)

- apt:
    pkg: vim
    state: present

Format scalar pliat (Folded Scalar)

- apt: >
    pkg=vim
    state=present

Puteț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: no

Fiș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: present

Cheie de depozit

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

Legate de Git

- git:
    repo: git://github.com/
    dest: /srv/checkout
    version: master
    depth: 10
    bare: yes

Referință: modulul git

Configurare Git

- git_config:
    name: user.email
    scope: global # local | system
    value: hi@example.com

Referință: 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"  # Comentariu

Referință: modulul user

Gestionarea serviciilor

- service:
    name: nginx      # Nume serviciu
    state: started   # Stare: pornit
    enabled: yes     # Activat la pornire

Referință: modulul service

Legate de Shell

comandă shell

- shell: apt-get install nginx -y

Opț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ție

Exemplu 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ție

Referință: 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 simbolic

Referință: 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 backup

Referință: 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 backup

Referință: modulul template

Operații locale

Executarea locală

- name: Execută operația local
  local_action: shell echo hello

Ieșire debug

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

Referință: modulul debug