andrelohmann.mailpit

mailpit

Última prueba

Contenido

Usa esta rol para instalar mailpit y ejecutarlo como un daemon en segundo plano usando systemd.

Requisitos

Este rol requiere Ubuntu.

Variables del Rol

El conjunto de variables predeterminadas define la configuración con la que se iniciará mailpit:

mailpit_smtp_port: 1025
mailpit_web_port: 8025
mailpit_release: latest

Al establecer las siguientes variables adicionales, puedes usar mailpit detrás de Apache:

mailpit_proxy_apache: true
mailpit_proxy_domain: _tu.dominio.mailpit_
mailpit_proxy_port: 80

o Nginx:

mailpit_proxy_nginx: true
mailpit_proxy_domain: _tu.dominio.mailpit_
mailpit_proxy_port: 80    

Ejemplo de Playbook

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

Desarrollo del Rol

Propósito especial

Este repositorio admite las siguientes características para el desarrollo del rol:

  • yamllint
  • ansible-lint
  • prueba de molécula
  • acción de GitHub
  • actualización automática de versiones
  • actualización de ansible-galaxy
  • mostrar estado de construcción
  • prueba dentro de Vagrant (con fines de desarrollo)
  • prueba con molécula (dentro o fuera de Vagrant)
  • prueba contra contenedor Docker
  • prueba y desarrollo dentro de VSCode

Requisitos previos

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

  • VirtualBox + Vagrant instalados (solo necesario si el rol se probará también con Vagrant)
  • Docker Desktop
  • Visual Studio Code + paquete de extensión remota (las dependencias están definidas en .vscode/extensions.json)

Configuración de Desarrollo

Este rol de Ansible se desarrolla utilizando molécula para pruebas. Su desarrollo está basado en Visual Studio Code y un contenedor de desarrollo relacionado, resolviendo todas las dependencias en términos de herramientas necesarias (ansible, linter, molécula).

El rol se probará en dos contenedores de Ubuntu (focal, jammy).

Para iniciar los contenedores de prueba de molécula desde dentro del contenedor de desarrollo, el socket Docker debe ser montado en el contenedor de desarrollo.

Carpetas y archivos importantes

.devcontainer
  • Define el Dockerfile para el contenedor de desarrollo.
  • Configura el inicio del contenedor de desarrollo (por ejemplo, monta el socket de Docker).
molecule/default/Dockerfile.js
  • Usado como plantilla para todas las plataformas definidas en molecule/default/molecule.yml.
  • Prepara los entornos para soportar servicios systemd (necesario para algunos roles de Ansible que funcionan en systemd).
  • Instala todos los requisitos para ejecutar Ansible contra el contenedor derivado.
  • El archivo está alineado con los atributos de las plataformas en molecule/default/molecule.yml.
  • Para más información, estudia la documentación de molécula.

Uso

Visual Studio Code

  • Cambia al directorio raíz de tu rol y abre VSCode.
code .
  • Desde dentro del contenedor de desarrollo puedes usar los siguientes comandos:
yamllint .
ansible-lint .
molecule create
molecule test

Vagrant + Virtualbox

  • Cambia al directorio raíz de tu rol.
  • Cambia al folder de Vagrant.
  • Inicia y entra en la máquina Vagrant.
vagrant up
vagrant ssh
  • Cambia al directorio del rol.
cd /etc/ansible/roles/ansible-role- [tab]
  • Ahora puedes ejecutar todas las pruebas.
yamllint .
ansible-lint .
molecule create
molecule test

Proceso de Construcción y Lanzamiento

El rol de Ansible define un conjunto de flujos de trabajo de GitHub para ejecutar pruebas de molécula y gestión de lanzamientos.

La gestión de lanzamientos requiere un conjunto de configuraciones.

Proteger la rama principal

  • Configuración -> Ramas -> Añadir regla de protección de ramas.
  • Nombre del patrón de rama -> main o master (dependiendo de tu rama predeterminada).
  • Proteger ramas coincidentes -> marcar "Requerir una solicitud de extracción antes de fusionar".
  • "Requerir aprobaciones" se puede manejar individualmente según sea necesario.

Dar permisos de lectura y escritura al GITHUB_TOKEN

  • Configuración -> Acciones -> General -> Permisos de flujo de trabajo -> permisos de lectura y escritura.

Mensajes de confirmación

Los mensajes de confirmación deben seguir un formato especial para lograr una actualización de versión semántica de parche, menor o mayor.

parche

0.0.x

fix(single_word): descripción
menor

0.x.0

feat(single_word): descripción
mayor

x.0.0

perf(single_word): descripción
CAMBIO RUPTURA: describiendo el cambio que rompe la compatibilidad.

Es absolutamente importante que "CAMBIO RUPTURA: " se mencione en la segunda línea o posteriores. En los mensajes de confirmación de una sola línea, se ignorará la actualización de versión mayor.

Agregar clave secreta GALAXY_API_KEY

  • Autentícate con tu cuenta de GitHub en https://galaxy.ansible.com/.
  • Obtén la clave API de Galaxy desde Preferencias -> Clave API.
  • Abre tu repositorio de rol en GitHub.
  • Configuración -> Secretos y variables -> Acciones -> Nuevo secreto de repositorio.
  • Usa "GALAXY_API_KEY" como clave y la clave API de Galaxy copiada como valor.

Licencia

MIT

Información del Autor

© Andre Lohmann (y otros) 2024

https://github.com/andrelohmann

Contacto del Mantenedor

  • Andre Lohmann <lohmann.andre (at) gmail (dot) com>
Acerca del proyecto

ansible galaxy role to install mailpit

Instalar
ansible-galaxy install andrelohmann.mailpit
Licencia
mit
Descargas
224
Propietario