mailpit
mailpit
Содержание
Используйте эту роль для установки mailpit и запуска его как демона в фоновом режиме с использованием systemd.
Требования
Эта роль требует Ubuntu.
Переменные роли
Набор переменных по умолчанию определяет настройки, с которыми будет запущен mailpit:
mailpit_smtp_port: 1025
mailpit_web_port: 8025
mailpit_release: latest
Установив следующие дополнительные переменные, вы можете настроить прокси для mailpit за Apache:
mailpit_proxy_apache: true
mailpit_proxy_domain: _ваш.домен.mailpit_
mailpit_proxy_port: 80
или Nginx:
mailpit_proxy_nginx: true
mailpit_proxy_domain: _ваш.домен.mailpit_
mailpit_proxy_port: 80
Пример плейбука
- hosts: mailpit
roles:
- { role: andrelohmann.mailpit }
Разработка роли
Специальное назначение
Этот репозиторий поддерживает следующие функции для разработки роли:
- yamllint
- ansible-lint
- молекулярное тестирование
- действия GitHub
- автоподъем версии
- обновление ansible-galaxy
- отображение статуса сборки
- тестирование внутри Vagrant (для целей разработки)
- тестирование с Molecule (внутри или вне Vagrant)
- тестирование против контейнера Docker
- тестирование и разработка внутри vscode
Предварительные условия
- Установлены Virtualbox + Vagrant (требуется только в случае, если роль также должна быть протестирована с Vagrant).
- Docker Desktop.
- Visual Studio Code + пакет расширений для удаленной работы (зависимости определены в .vscode/extensions.json).
Настройки разработки
Эта ansible роль разрабатывается с использованием Molecule для тестирования. Ее разработка основана на Visual Studio Code и соответствующем контейнере разработки, решая все зависимости в терминах необходимых инструментов (ansible, линтер, molecule).
Роль будет протестирована на двух контейнерах Ubuntu (focal, jammy).
Чтобы запустить тестовые контейнеры Molecule изнутри контейнера разработки, сокет Docker необходимо прикрепить к контейнеру разработки.
Важные папки и файлы
.devcontainer
- Определяет Dockerfile для контейнера разработки.
- Настраивает запуск контейнера разработки (например, привязка сокета Docker).
molecule/default/Dockerfile.js
- Используется как шаблон для всех платформ, определенных в molecule/default/molecule.yml.
- Подготавливает окружения для поддержки служб systemd (необходимо для некоторых Ansible ролей, работающих на systemd).
- Устанавливает все требования для запуска ansible против созданного контейнера.
- Файл согласован с атрибутами платформ в molecule/default/molecule.yml.
- Для получения дополнительной информации ознакомьтесь с документацией Molecule.
Использование
Visual Studio Code
- Перейдите в корневую директорию вашей роли и запустите vscode
code .
- Из контейнера разработки вы можете использовать следующие команды выполнения:
yamllint .
ansible-lint .
molecule create
molecule test
Vagrant + Virtualbox
- Перейдите в корневую директорию вашей роли.
- Перейдите в папку vagrant.
- Запустите и войдите в машину Vagrant:
vagrant up
vagrant ssh
- Перейдите в папку роли:
cd /etc/ansible/roles/ansible-role- [tab]
- Теперь вы можете выполнять все тесты:
yamllint .
ansible-lint .
molecule create
molecule test
Процесс сборки и выпуска
Ansible роль определяет набор рабочих процессов GitHub для запуска тестирования Molecule и управления релизами.
Управление релизами требует определенного набора настроек.
Защита основной ветки
- Настройки -> Ветки -> Добавить правило защиты ветки.
- Шаблон ветки -> main или master (в зависимости от вашей основной ветки).
- Защита совпадающих веток -> отметьте "Требовать запрос на извлечение перед слиянием".
- "Требовать одобрения" можно обрабатывать по мере необходимости.
Дать разрешения на чтение и запись для GITHUB_TOKEN
- Настройки -> Действия -> Общее -> Разрешения рабочего процесса -> разрешения на чтение и запись.
Сообщения коммитов
Сообщения коммитов должны следовать специальному формату для достижения обновления патчей, минорных или мажорных семантических версий.
патч
0.0.x
fix(single_word): описание
минорный
0.x.0
feat(single_word): описание
мажорный
x.0.0
perf(single_word): описание
BREAKING CHANGE: описание ломающее изменения
Крайне важно, чтобы "BREAKING CHANGE: " упоминалось во второй и последующих строках. В случае одиночного сообщения коммита обновление мажорной версии будет проигнорировано.
Добавление секрета GALAXY_API_KEY
- Убедитесь, что вы аутентифицированы с помощью своей учетной записи GitHub на https://galaxy.ansible.com/.
- Получите ключ API galaxy из Настройки -> API Key.
- Откройте свой репозиторий роли на GitHub.
- Настройки -> Секреты и переменные -> Действия -> Новый секрет репозитория.
- Используйте "GALAXY_API_KEY" в качестве ключа и скопированный ключ API galaxy в качестве значения.
Лицензия
MIT
Информация об авторе
© Andre Lohmann (и другие) 2024
https://github.com/andrelohmann
Контакт с сопровождающим
- Andre Lohmann <lohmann.andre (собака) gmail (точка) com>
ansible-galaxy install andrelohmann/ansible-role-mailpit