Ansible (menținut de Red Hat) este cel mai simplu, flexibil și puternic instrument de automatizare IT, management al configurațiilor (Configuration Management) și orchestrare multi-nod. Spre deosebire de unelte tradiționale precum Puppet sau Chef care impuneau instalarea și menținerea unor agenți software complecși pe fiecare mașină țintă, Ansible este complet Agentless (Fără Agenți): comunică cu serverele Linux prin protocolul nativ SSH și cu serverele Windows prin WinRM, necesitând doar Python pe mașina țintă.
Ansible funcționează pe principiul fundamental al Idempotenței: un playbook poate fi rulat de 100 de ori la rând, iar Ansible va efectua modificări doar dacă starea curentă a serverului diferă de starea dorită descrisă în fișierele YAML. Această caracteristică garantează stabilitatea absolută a mediilor de producție.
# Nodul de Control (Laptop sau Server CI/CD cu Ansible)
# ┌─────────────────────────────────────────────────────────────┐
# │ Fișier Inventar: [webservers], [databases] │
# │ Playbook YAML: "Asigură instalarea Nginx și configurarea" │
# └────────────────────────────┬────────────────────────────────┘
# │ (Conexiune standard SSH pe portul 22)
# ┌───────────────┴───────────────┐
# ▼ ▼
# ┌─────────────────────────┐ ┌─────────────────────────┐
# │ Server Linux Țintă #1 │ │ Server Linux Țintă #2 │
# │ (FĂRĂ agent instalat! │ │ (FĂRĂ agent instalat! │
# │ Doar OpenSSH + Python) │ │ Doar OpenSSH + Python) │
# └─────────────────────────┘ └─────────────────────────┘
Pilonii Tehnologici ai Ansible
| Concept Ansible | Descriere Tehnică | Rol în Administrarea Sistemelor |
|---|---|---|
| Inventar (Inventory) | Fișiere INI sau YAML care listează adresele IP ale serverelor organizate pe grupuri logice. | Permite țintirea precisă a comenzilor către un anumit cluster (ex: doar serverele de bază de date). |
| Module Integrate | Peste 3.000 de module specializate (apt, systemd, file, git, docker_container). |
Execută acțiuni discrete cu idempotență garantată, fără a scrie scripturi Bash fragile. |
| Playbooks | Fișiere de orchestrare scrise în YAML ce descriu succesiunea de task-uri și roluri. | Documentează întreaga configurație a serverelor ca un cod executabil și versionabil. |
| Ansible Vault | Mecanism integrat de criptare simetrică AES-256 a fișierelor de variabile și parole. | Permite comiterea în siguranță a parolelor și cheilor private în depozitele Git. |
---
- name: Configurare Server Web de Producție
hosts: webservers
become: true # Rulează ca root (sudo)
tasks:
- name: Asigură prezența pachetului Nginx
ansible.builtin.apt:
name: nginx
state: present
update_cache: true
- name: Copiază pagina principală personalizată
ansible.builtin.copy:
dest: /var/www/html/index.html
content: "<h1>Server administrat automat prin Ansible</h1>"
mode: '0644'
notify: Repornește Nginx
- name: Asigură că serviciul Nginx rulează și pornește la boot
ansible.builtin.systemd:
name: nginx
state: started
enabled: true
handlers:
- name: Repornește Nginx
ansible.builtin.systemd:
name: nginx
state: reloaded