Cheat Sheet Ansible
Το Ansible είναι ένα ανερχόμενο εργαλείο αυτοματοποίησης λειτουργιών που αναπτύχθηκε με βάση την Python. Συνδυάζει τα πλεονεκτήματα πολλών εργαλείων λειτουργιών (puppet, cfengine, chef, func, fabric) και υλοποιεί λειτουργίες όπως η μαζική διαμόρφωση συστημάτων, η μαζική ανάπτυξη προγραμμάτων και η μαζική εκτέλεση εντολών.
Ξεκινώντας
Κεντρικοί Υπολογιστές και Ομάδες (Hosts and Groups)
$ sudo mkdir /etc/ansible
$ sudo vim /etc/ansible/hosts
[example]
192.0.2.101
192.0.2.102
Εκτέλεση Playbook
$ ansible-playbook playbook.yml
Εργασίες (Tasks)
- hosts: all
user: root
sudo: no
vars:
aaa: bbb
tasks:
- ...
handlers:
- ...
Συμπεριλήψεις (Includes)
tasks:
- include: db.yml
handlers:
- include: db.yml user=timmy
Ενεργοποιητές (Triggers)
handlers:
- name: start apache2
action: service name=apache2 state=started
tasks:
- name: install apache
action: apt pkg=apache2 state=latest
notify:
- start apache2
Μεταβλητές (Variables)
- 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"
Ρόλοι (Roles)
- host: xxx
roles:
- db
- { role:ruby, sudo_user:$user }
- web
# Χρήσεις:
# roles/db/tasks/*.yml
# roles/db/handlers/*.yml
Διαχείριση Σφαλμάτων
- name: my task
command: ...
register: result
failed_when: "'FAILED' in result.stderr"
ignore_errors: yes
changed_when: "result.rc != 2"
Μεταβλητές Περιβάλλοντος
vars:
local_home: "{{ lookup('env','HOME') }}"