Cheat Sheet Ansible
Ansible este un instrument emergent de automatizare a operațiunilor IT, dezvoltat pe baza Python. Combină avantajele multor instrumente de gestionare (puppet, cfengine, chef, func, fabric) și implementează funcții precum configurarea sistemelor în lot, implementarea programelor în lot și executarea comenzilor în lot.
Primii pași
Gazde și grupuri (Hosts and Groups)
$ sudo mkdir /etc/ansible
$ sudo vim /etc/ansible/hosts
[example]
192.0.2.101
192.0.2.102
Executarea unui Playbook
$ ansible-playbook playbook.yml
Sarcini (Tasks)
- hosts: all
user: root
sudo: no
vars:
aaa: bbb
tasks:
- ...
handlers:
- ...
Includeri (Includes)
tasks:
- include: db.yml
handlers:
- include: db.yml user=timmy
Declanșatori (Triggers)
handlers:
- name: start apache2
action: service name=apache2 state=started
tasks:
- name: install apache
action: apt pkg=apache2 state=latest
notify:
- start apache2
Variabile
- host: lol
vars_files:
- vars.yml
vars:
project_root: /etc/xyz
tasks:
- name: Create the SSH directory.
file: state=directory path=${project_root}/home/.ssh/
only_if: "$vm == 0"
Roluri (Roles)
- host: xxx
roles:
- db
- { role:ruby, sudo_user:$user }
- web
# Utilizări:
# roles/db/tasks/*.yml
# roles/db/handlers/*.yml
Gestionarea erorilor
- name: my task
command: ...
register: result
failed_when: "'FAILED' in result.stderr"
ignore_errors: yes
changed_when: "result.rc != 2"
Variabile de mediu
vars:
local_home: "{{ lookup('env','HOME') }}"