Як запустити кілька ігрових книжок для того, щоб користуватися Ansible?


16

Я працюю над кількома книжками Ansible, щоб створити новий екземпляр сервера. Існує приблизно 15 різних ігрових книг, які мені потрібно запустити в певному порядку, щоб успішно розпочати сервер.

Моя початкова думка полягала в тому, щоб написати сценарій оболонки, який виконує ansible-playbook playbook_name.ymlі дублює його одним записом для кожної ігрової книги, яку мені потрібно запустити.

Чи є розумніший / кращий спосіб зробити це за допомогою майстер-книги, і якщо так, як це виглядатиме (приклади оцінюються).

Я можу написати одну монолітну книжку, яка все робить, але є деякі п'єси, які виконуються спочатку як root, а потім як користувач sudo пізніше.


2
використання включити у свою основну програму playbook docs.ansible.com/ansible/playbooks_roles.html
c4f4t0r

1
Для обробки випадку запуску як root, а потім як користувача sudo, ви можете використовувати функцію блоку - помістіть become:частину в кінці кожного блоку. Ви , можливо , буде потрібно створити нову гру для користувача підключення комутатора від кореня до SUDO користувача , хоча.
RichVel

Відповіді:


15

Створіть багато підпрограшних підручників та об'єднайте їх за допомогою операторів include.

- include: playbook-one.yml
- include: playbook-two.yml

Якщо ваші ігрові книжки повинні працювати в порядку і якщо всі вони є обов’язковими, створіть основну книгу і додайте файли із завданнями. Іграшка завжди має бути закритим процесом.


2
Ви могли б детальніше зупинитися на останній частині своєї відповіді? що ви маєте на увазі під «ігровою книжкою, завжди має бути закритим процесом». ?
Майк Велла

1
Чи є спосіб вказати всі ігрові книги за допомогою регулярного вираження? Наприклад:- include : books/*.yml
blueskin

8
Схоже include, застаріло. docs.ansible.com/ansible/latest/playbooks_reuse.html Я думаю, що import_playbook: fooце правильний шлях, але я не дуже досвідчений.
Андрій

11

Для новіших версій Ansilbe ви можете створити багато підпрограшних книг і об'єднати їх за допомогою операторів import_playbook:

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.