Skip to content

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') }}"