Ansible — Automatizácia konfigurácie
Ansible je open-source nástroj na automatizáciu konfigurácie serverov, nasadzovania aplikácií a orchestráciu IT procesov. Je agentless — nepotrebuje žiadneho agenta na cieľových serveroch.
Prečo Ansible?
- Agentless — komunikuje cez SSH, žiadna inštalácia na serveroch
- Jednoduché — YAML syntax, čitateľné aj pre ne-programátorov
- Idempotentné — opakované spustenie nemení výsledok
- Rozšíriteľné — tisíce modulov pre rôzne systémy
Architektúra
Control Node — stroj, z ktorého spúšťate Ansible (váš laptop/CI server).
Managed Nodes — cieľové servery definované v inventári.
Inventory — zoznam serverov:
[webservers]
web1.example.com
web2.example.com
[databases]
db1.example.com ansible_user=admin
Playbook
Playbook je YAML súbor popisujúci želaný stav:
---
- name: Konfigurácia webservera
hosts: webservers
become: yes
tasks:
- name: Inštalácia Nginx
apt:
name: nginx
state: present
update_cache: yes
- name: Kopírovanie konfigurácie
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: Reštart Nginx
- name: Spustenie Nginx
service:
name: nginx
state: started
enabled: yes
handlers:
- name: Reštart Nginx
service:
name: nginx
state: restarted
Kľúčové koncepty
- Task — jednotlivá akcia (inštalácia balíka, kopírovanie súboru)
- Role — znovupoužiteľná kolekcia taskov, šablón a premenných
- Handler — task, ktorý sa spustí len pri zmene
- Template — Jinja2 šablóna pre konfiguračné súbory
- Vault — šifrovanie citlivých údajov
Ansible vs Terraform
Ansible a Terraform sa dopĺňajú:
- Terraform — vytvára infraštruktúru (servery, siete)
- Ansible — konfiguruje vytvorenú infraštruktúru (inštaluje softvér, nastavuje služby)
Príkazy
ansible-playbook site.yml— spustí playbookansible all -m ping— test konektivityansible-vault encrypt secrets.yml— šifrovanie
Ansible je ideálny na konfiguráciu serverov a automatizáciu opakujúcich sa úloh.