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

Предварительные условия

https://thedatabaseme.de/2022/01/17/automated-testing-your-ansible-role-with-molecule-and-github-actions/

  • Установлены 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 role to install mailpit

Установить
ansible-galaxy install andrelohmann/ansible-role-mailpit
Лицензия
mit
Загрузки
170
Владелец