Згідно з документами Ansible, Книга Play :
... основа для справді простого управління конфігурацією та багатомашинної системи розгортання, на відміну від уже існуючої, та такої, яка дуже добре підходить для розгортання складних додатків.
І, знову ж таки, згідно з тими самими документами, Ролі такі:
... способи автоматичного завантаження певних файлів vars_files, завдань та обробників на основі відомої структури файлів. Групування вмісту за ролями також дозволяє легко ділитися ролями з іншими користувачами.
Однак різниця між цими та різними випадками використання для мене не очевидна. Наприклад, якщо я налаштую свій /etc/ansible/hosts
файл так:
[databases]
mydb01.example.org
mydb02.example.org
[mail_servers]
mymail01.example.org
mymail_dr.example.org
... тоді що це за [databases]
"запис" ... роль ? Або ім’я файлу YAML із плейбуком десь? Або щось інше?!?
Якби хтось міг пояснити мені різницю в цих питаннях, моє розуміння Ansible було б значно покращено!
- Playbook vs Role vs
[databases]
та подібні записи в/etc/ansible/hosts
- Якщо Playbook визначено всередині файлів YAML, то де визначені Ролі?
- Окрім
ansible.cfg
живого на сервері Ansible, як мені додати / налаштувати Ansible за допомогою доступних Playbooks / Roles? Наприклад, коли я біжуansible-playbook someplaybook.yaml
, як Ansible знає, де знайти цю книгу?
tasks
робити речі. playbooks
організовувати та запускати завдання. roles
організовувати групи завдань, обробників тощо, які виконують певну функцію. Деякі playbook
потрібні для запуску role
(ив). Що б ви назвали колекцією roles
та playbooks
? Скажімо, наприклад, такий, який керує конфігурацією всіх хостів на вашому сайті?