ورقة غش 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') }}"