Я работаю над несколькими сценариями Ansible, чтобы запустить новый экземпляр сервера. Есть примерно 15 различных сценариев, которые мне нужно запустить в определенном порядке, чтобы успешно запустить сервер.
Моей первоначальной мыслью было написать сценарий оболочки, который выполняет ansible-playbook playbook_name.yml
и дублирует его. одна запись для каждой пьесы, которую мне нужно запустить.
Есть ли более умный / лучший способ сделать это, используя мастер-сценарий, и если да, то как он будет выглядеть (примеры приветствуются).
Я мог бы написать один монолитный сборник, который делает все это, но есть некоторые пьесы, которые сначала запустите как root, а потом как пользователь sudo.
Создайте множество вспомогательных сборников пьес и объедините их с помощью операторов включения.
- include: playbook-one.yml
- include: playbook-two.yml
Если ваши пьесы должны выполняться по порядку и если все они являются обязательными, создайте основную книгу пьес и включите файлы с задачами. Пособие всегда должно быть закрытым процессом.
Для более новых версий Ansilbe вы можете создать множество вспомогательных книг и объединить их с помощью операторов import_playbook:
---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
От: 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