Как автоматизировать развертывание из репозитория git, размещенного на github / bitbucket, на сервер ubuntu с помощью ansible?
В настройках репоста github -> webhooks я могу добавить webhook для pull to master, который вызовет мой сервер
У меня есть самодельное решение, написанное на node.js, которое извлекается из git и перезапускает службу, но хочу перейти на доступный
Я новичок в анзибле, но мало знаю о 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 его вызывает.