AnsibleTemplate
Темплейт для создания, проверки и тестирование ролей Ansible с помощью контейнеров Docker.
С чего начать?
На вашей машине вам необходимо сбилдить образ, где будут запускаться все роли через docker-compose.
Это можно сделать самостоятельно:
- make docker build - создание контейнера
- make docker rebuild - пересоздание контейнера, если были внесены изменения в Dockerfile
- make docker prune - очистить систему от лишних образов
- make docker shell - войти в контейнер Shell
- make docker release - собирает образ контейнера и пушит его в докер реджистри
- make docker images - собрать образы контейнеров с systemd, для удобного тестирования ролей.
Или ввести команду:
- make init - которая создаст файл секретов с паролем. Сбилдит образ. И создаст новую роль.
Работа с ролью
- make role new - создать новую роль из шаблона. Название роли пишется на английском, описание роли на любом языке
- make role lint - проверяет все роли в папке roles/* на наличие ошибок
- make role test - позволяет тестировать роль, указанную в molecule/default/converge.yml сразу на двух контейнерах (RedHat и Ubuntu)
- make role deploy - запускает роль в продакшен. Все хосты берет из файла inventory/hosts
Работа с файлом переменных
Все переменные защищены через Ansible-Vault и находятся в папке vars/secrets.yml
Для смены пароля измените его в файле ./vault-password.txt
- make vault create - создать новый файл с учетом пароля в файле ./vault-password.txt
- make vault delete - удалить файл с переменными
- make vault edit - отредактировать файл переменных
- make vault show - показать содержимое файла переменных
- make vault rekey - сменить пароль шифрования
- make vault encrypt - зашифровать файл секретов
- make vault decrypt - расшифровать файл секретов
Работа с Git
- make git push - запушить изменения. С выбором ветки и вводом коммита.
- make git pull - получить изменения из репы
- make git new - создание нового брэнча имя cluster-branch_name для IaC подхода.
Добавить свой образ контейнера для тестов
Что бы добавить или изменить докер-образы для тестирования ролей измените файл настроек молекулы molecule/default/molecule.yml
- name: ubuntu-instance
image: "your.docker-registry.com/your-image:latest"
privileged: true
pre_build_image: true
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
Помните, что образ обязательно должен содержать python не ниже версии 3.12 и systemd для нормального тестирования ролей.
Description
Languages
Makefile
78.8%
Dockerfile
21.2%