Как запустить несколько playbooks по порядку с помощью Ansible?

Я работаю над несколькими сценариями Ansible, чтобы запустить новый экземпляр сервера. Есть примерно 15 различных сценариев, которые мне нужно запустить в определенном порядке, чтобы успешно запустить сервер.

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

Есть ли более умный / лучший способ сделать это, используя мастер-сценарий, и если да, то как он будет выглядеть (примеры приветствуются).

Я мог бы написать один монолитный сборник, который делает все это, но есть некоторые пьесы, которые сначала запустите как root, а потом как пользователь sudo.

16
задан 13 August 2016 в 11:43
3 ответа

Создайте множество вспомогательных сборников пьес и объедините их с помощью операторов включения.

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

Если ваши пьесы должны выполняться по порядку и если все они являются обязательными, создайте основную книгу пьес и включите файлы с задачами. Пособие всегда должно быть закрытым процессом.

14
ответ дан 2 December 2019 в 20:40

Для более новых версий Ansilbe вы можете создать множество вспомогательных книг и объединить их с помощью операторов import_playbook:

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
11
ответ дан 2 December 2019 в 20:40

От: https://docs.ansible.com/ansible/latest/collections/ansible /builtin/import_playbook_module.html

- hosts: localhost
  tasks:
    - debug:
        msg: play1

- name: Include a play after another play
  import_playbook: otherplays.yaml
2
ответ дан 4 January 2021 в 16:11

Теги

Похожие вопросы