Skip to content

ورقة غش Ansible

Ansible هي أداة أتمتة ناشئة تم تطويرها بناءً على Python. وهي تجمع بين مزايا العديد من أدوات العمليات (puppet، cfengine، chef، func، fabric) لتحقيق تكوين النظام الشامل ونشر البرامج المجمعة وتشغيل الأوامر المجمعة وغيرها من الوظائف.

البداية

المضيفون والمجموعات

$ 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:
    - ...

التضمين (Include)

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