Как автоматизировать развертывание из репозитория git, размещенного на github / bitbucket, на сервер ubuntu с помощью ansible?
В настройках репоста github -> webhooks я могу добавить webhook для pull to master, который вызовет мой сервер
У меня есть самодельное решение, написанное на node.js, которое извлекается из git и перезапускает службу, но хочу перейти на ansible
Я новичок в ansible, но мало знаю о ansible-playbook
Есть модуль github webhook для ansible https://docs.ansible.com/ansible/latest/github_hooks_module.html
Но я не понимаю, что.yml, мне нужно написать
Также мне нужно передать секретные ключи API, используя переменные окружения. Как сохранить его в связке ключей?
Записать файл .yml для ansible-playbook, этот сервисный веб-сервер для ловушки с секретным полем и git pull
плюс запустить git-хуки вроде ] npm i
, который указан в репо (от непривилегированного пользователя) и говорит, как его использовать
Скажем, можно ли использовать модуль github webhook с битбакетом?
Модуль github_hooks
устарел и используется в Ansible для создания хуков на Github. Что вам нужно, так это отбрасывать трубку, когда, например, был сделан Git push (так что наоборот).
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 его вызывает.