Назад | Перейти на главную страницу

ansible git autodeploy с помощью веб-перехватчиков

Как автоматизировать развертывание из репозитория 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 его вызывает.