Действия GitHub в Ansible

Dejstvia Github V Ansible



Ansible – популярный, бесплатный инструмент автоматизации с открытым исходным кодом, который позволяет нам автоматизировать задачи DevOps, такие как управление конфигурациями, развертывание приложений и т. д.

Сочетание Ansible с действиями GitHub позволяет нам автоматизировать выполнение плейбуков Ansible всякий раз, когда в репозитории происходит определенное событие, например нажатие на основную ветку.







В этом руководстве вы узнаете, как настроить действие GitHub для запуска сборника сценариев Ansible, что полезно для автоматизации развертывания в ответ на изменения кода.



Предпосылки:

Прежде чем продолжить, убедитесь, что у вас есть следующее:



  • Учетная запись GitHub
  • Существующий репозиторий GitHub.
  • Базовые знания плейбуков Ansible.
  • Целевая машина, на которой Ansible может выполнять задачи. Убедитесь, что Ansible может подключаться к этим машинам с помощью средства запуска GitHub.

Шаг 1. Настройка среды Ansible

Создайте и сохраните книгу воспроизведения Ansible и все связанные файлы в репозитории GitHub. Сюда должны входить такие файлы, как шаблоны ролей, переменные и т. д.





Пример книги действий выглядит следующим образом:

---
- имя: убедитесь, что Nginx установлен на веб-серверах.
хосты: веб-сервер
стать: да
задания:
- имя: Обновление кеша apt.
подходит:
update_cache: да

- имя: Установить Nginx
подходит:
имя: нгинкс
состояние: присутствует

Убедитесь, что у вас есть файл инвентаризации, в котором указаны целевые компьютеры для Ansible.



Шаг 2. Настройте секреты в репозитории GitHub

Учитывая, что для playbook требуется конфиденциальная информация, такая как ключи или пароли SSH, GitHub предоставляет способ безопасного хранения секретов:

Перейдите в свой репозиторий GitHub.

Откройте «Настройки» > «Секреты и переменные» -> «Действия» -> «Новый секрет репозитория».

Шаг 3. Создайте рабочий процесс действий GitHub

В репозитории создайте каталог «.github/workflows». Внутри этого каталога создайте файл YAML для вашего рабочего процесса.

Добавьте рабочий процесс следующим образом:

имя: Запустить Ansible Playbook
на:
толкать:
ветви:
- владелец
вакансии:
развертывать:
запуск: Ubuntu-последний
шаги:
- имя: Код оформления заказа
использует: действия/checkout@v2
- имя: Настройка ключа SSH.
запустить: |
echo '${{ secrets.SSH_PRIVATE_KEY }}' > Private_key.pem
chmod 600 Private_key.pem
- имя: Запустить Ansible Playbook
запустить: |
обновление sudo apt
sudo apt install -y ansible
ansible-playbook -i hosts.ini my-playbook.yml --private-key=private_key.pem --user=${{ secrets.REMOTE_USER }}

Шаг 4. Запустите рабочий процесс

Всякий раз, когда вы отправляете команду в главную ветку, GitHub автоматически запускает этот рабочий процесс и, таким образом, выполняет книгу воспроизведения.

Заключение

Вот и все. Мы рассмотрели, как запустить сборник пьес Ansible с помощью действий Github.