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.