Автоматическое развертывание ANSIBLE GIT

Как автоматизировать развертывание из репозитория git, размещенного на github / bitbucket, на сервер ubuntu, используя ansible?

В настройках репозитория github->webhooks я могу добавить webhook для pull to master, который вызовет мой сервер

У меня есть собственное решение, написанное в node.js, которое извлекает из git и перезапускает службу, но хочет перейти на ansible

Я новичок в ansible, но мало знаю о ansible-playbook

Имеется модуль github для подключения к интернету https://docs.ansible.com/ansible/latest/github_hooks_module.html

Но я не понимаю, какой файл.yml мне нужно написать

Также мне нужно передать секретные ключи API, используя переменные окружения. Как сохранить его в связке ключей?

Как помочь

Напишите файл.yml для ansible-playbook, сервисного веб-сервера для ловушки с секретным полем и git pull плюс беги мерзавцы как npm i, что указано в репо (от непривилегированного пользователя) и сказать, как его использовать

Скажите, можно ли использовать модуль GitHub Webhook с Bitbucket?

0 ответов

В github_hooksмодуль устарел и используется в Ansible для создания хуков на Github. Что вам нужно, так это вызов, который вызывается, когда, например, было выполнено нажатие Git (так что наоборот).

Github нужен HTTP-сервис для вызова, когда вы хотите, чтобы Ansible что-то делал. Сам Ansible не может этого сделать, потому что это не сервер и ничего не слушает. Это просто "сценарий".

У вас есть два варианта: поместить все ваши скрипты Ansible и т. Д. В AWX/Ansible Tower. Это веб-сервис, у которого есть REST-API. Пожалуйста, загляните на https://keithtenzer.com/2019/06/24/ci-cd-with-ansible-tower-and-github/ для хорошего описания.

Если вы не хотите устанавливать AWX. Установите какой-нибудь HTTP-сервер на управляющую машину ansible и напишите сценарий (например, тот, который вы уже сделали), который запускает Ansible-Playbook, когда Github его вызывает.

Другие вопросы по тегам