ansibleguy.sw_mailcow
Role de Ansible - MailCow
Rol para desplegar MailCow dockerizado en un servidor linux.
Este rol sigue las instrucciones de instalación oficiales.
Registros de Molecule: Corto, Completo
Probado:
- Debian 11
Instalación
# última versión
ansible-galaxy role install git+https://github.com/ansibleguy/sw_mailcow
# desde galaxy
ansible-galaxy install ansibleguy.sw_mailcow
# o a una ruta de rol personalizada
ansible-galaxy install ansibleguy.sw_mailcow --roles-path ./roles
# instalar dependencias
ansible-galaxy install -r requirements.yml
Requisitos previos
Ver: Requisitos previos
Uso
¿Quieres una GUI simple de Ansible? Consulta mi Ansible WebUI
Configuración
Define la configuración según sea necesario:
mailcow:
fqdn: 'srv.template.ansibleguy.net'
# por ejemplo: 'srv.template.ansibleguy.net' debe ser un nombre válido y público de DNS del servidor
# si no tienes IPv6
ipv6: false
nginx: # configura los ajustes del servidor web => ver: https://github.com/ansibleguy/infra_nginx
aliases: ['mail.template.ansibleguy.net'] # dominios adicionales para agregar al certificado
ssl:
mode: 'letsencrypt' # o selfsigned/ca/snakeoil
# si usas 'selfsigned' o 'ca':
# cert:
# cn: 'Servidor MailCow'
# org: 'AnsibleGuy'
# email: '[email protected]'
letsencrypt:
email: '[email protected]'
config: # agrega configuraciones personalizadas para 'mailcow.conf'
WEBAUTHN_ONLY_TRUSTED_VENDORS: 'y'
auto_update:
enable: true # habilita actualizaciones automáticas
backup:
retention_days: 60 # predeterminado = 14
Ejemplo mínimo:
mailcow:
fqdn: 'srv.template.ansibleguy.net'
Si deseas usar el servidor web incorporado (no administrado por ansible):
mailcow:
fqdn: 'srv.template.ansibleguy.net'
# por ejemplo: 'srv.template.ansibleguy.net' debe ser un nombre válido y público de DNS del servidor
manage:
webserver: false
config:
HTTP_PORT: 80
HTTPS_PORT: 443
# si deseas usar el soporte incorporado de letsencrypt
SKIP_LETS_ENCRYPT: 'n'
ACME_CONTACT: '[email protected]'
ADDITIONAL_SAN: 'smtp.template.ansibleguy.net,mail.*'
Ejecución
Ejecuta el playbook:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml
También hay algunas etiquetas útiles disponibles:
- docker
- webserver
Para depurar errores, puedes establecer la variable 'debug' en tiempo de ejecución:
ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes
Funcionalidad
Instalación de paquetes
- Dependencias de Ansible (mínimas)
Configuración
Servicio para iniciar contenedores al iniciar: 'mailcow.service'
Configuración predeterminada:
- Directorios:
- Base: '/var/lib/mailcow'
- Datos: '/var/lib/docker/volumes' (no se puede cambiar por el rol)
- Copia de seguridad: '/var/backups/mailcow'
- Directorios:
Opciones predeterminadas:
Docker => usando ESTE Rol
- Dependencias
- Servidor
- Docker-compose
Proxy Nginx en el host docker => usando ESTE Rol
Características:
- SOGo Groupware
- Apache Solr
- ClamAV (escáner de virus)
IPv6 habilitado
Copia de seguridad diaria usando el script de copia de seguridad
Opciones predeterminadas desactivadas:
- Actualización automática usando el script de actualización (NOTA: ¡actualmente funciona muy bien!)
Información
Información: Considera usar un Gateway de Correo para mayor seguridad!
Por ejemplo: Proxmox Mail Gateway
Información: Consulta la información de solución de problemas: Solución de problemas
Nota: este rol actualmente solo es compatible con sistemas basados en debian
Nota: La mayoría de la funcionalidad del rol se puede habilitar o deshabilitar.
Para todas las opciones disponibles, consulta la configuración predeterminada ubicada en el archivo de configuraciones principales!
Advertencia: No se verificará la validez de cada configuración variable que proporciones. Una mala configuración podría romper el rol.
Información: Credenciales predeterminadas:
Usuario: admin
Contraseña: moohoo
Información: Para más información detallada, consulta la bonita documentación proporcionada por MailCow.
Información: Si la configuración falla después de crear el archivo de configuración, deberás eliminar el archivo de configuración (/var/lib/mailcow/mailcow.conf) manualmente, para que el rol sepa que no se ha inicializado aún.
Advertencia: Las COPIAS DE SEGURIDAD automáticas se colocan en el mismo sistema y deben copiarse a una ubicación REMOTA para estar SEGURAS.
Ansible role to deploy MailCow dockerized on a linux server
ansible-galaxy install ansibleguy.sw_mailcow