andrelohmann.mailpit

mailpit

最后测试

目录

使用此角色安装mailpit,并通过systemd在后台作为守护进程运行。

需求

此角色需要ubuntu系统。

角色变量

默认变量集定义了mailpit启动时的设置:

mailpit_smtp_port: 1025
mailpit_web_port: 8025
mailpit_release: latest

通过设置以下额外变量,可以在apache后面代理mailpit:

mailpit_proxy_apache: true
mailpit_proxy_domain: _你的.mailpit.domain_
mailpit_proxy_port: 80

或在nginx后面代理:

mailpit_proxy_nginx: true
mailpit_proxy_domain: _你的.mailpit.domain_
mailpit_proxy_port: 80

示例剧本

- hosts: mailpit
  roles:
     - { role: andrelohmann.mailpit }

角色开发

特殊用途

此存储库支持以下角色开发功能:

  • yamllint
  • ansible-lint
  • molecule 测试
  • github action
  • 自动版本升级
  • 更新 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
  • VisualStudioCode + 远程扩展包(依赖关系在.vscode/extensions.json中定义)

开发环境设置

该ansible角色使用molecule进行测试开发。它的开发基于visual studio code和相关的开发容器,解决必要工具的依赖(ansible、linter、molecule)。

该角色将在两个ubuntu容器(focal,jammy)上进行测试。

要从开发容器内启动molecule测试容器,需要将docker套接字绑定挂载到开发容器。

重要文件和文件夹

.devcontainer
  • 定义开发容器的Dockerfile
  • 配置开发容器的启动(例如,绑定挂载docker套接字)
molecule/default/Dockerfile.js
  • 用作molecule/default/molecule.yml中定义的所有平台的模板
  • 准备环境以支持systemd服务(某些针对systemd的ansible角色所需)
  • 安装所有要求以便在派生容器上运行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分支

  • 设置 -> 分支 -> 添加分支保护规则
  • 分支模式名称 -> 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密钥

许可证

MIT

作者信息

© Andre Lohmann(和其他人)2024

https://github.com/andrelohmann

维护者联系

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
关于项目

ansible galaxy role to install mailpit

安装
ansible-galaxy install andrelohmann.mailpit
许可证
mit
下载
224
拥有者