Способ для клиента вызвать Ansible Playbook? - PullRequest
0 голосов
/ 07 января 2020

Моя задача - автоматизировать установку CentOS, включая набор проприетарного программного обеспечения, на чистые машины. Я настроил загрузочный сервер PXE, который автоматизирует первоначальную установку из файла Kickstart, а остальное передается в Ansible Playbook.

Я решил все вышеперечисленное, за исключением того, что я должен быть на сервере, чтобы запустить Playbook. Я не нашел хорошего способа запуска Playbook по запросу клиента (или, возможно, процесс PXE на стороне сервера может каким-то образом его передать?), В надежде, что я смогу исключить себя из процесса установки.

1 Ответ

1 голос
/ 07 января 2020

Я подумал, что немного расширю свой комментарий.

В зависимости от того, что вы пытаетесь выполнить sh, есть несколько вариантов, которые вы могли бы рассмотреть.

Использование ansible -pull

Cli ansible-pull выбирает репозиторий git с удаленного сервера и затем локально выполняет ansible-playbook playbook.yml на верхнем уровне этого репозитория.

Это означает, что вы может добавить что-то подобное в ваш сценарий Kickstart %post:

ansible-pull -U https://server.example.com/playbooks/client-configuration

Это отличное решение, если вашей пьесе требуется только запуск задач на клиенте.

Запуск книги воспроизведения на server

Если ваша playbook действительно должна выполняться на сервере, вы можете настроить простой веб-сервер, который позволит клиентам запускать playbook. В этом случае вы должны встроить команду curl или аналогичную в ваш сценарий Kickstart %post:

curl https://my.server.com/trigger-playbook

Служба trigger-playbook позаботится о запуске прогона playbook, ориентированного на соответствующего клиента. Для этого вам потребуется самостоятельно внедрить службу (или использовать что-то вроде webhook для выполнения этой задачи за вас).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...