|
# Basado en
# - Conversación IRC del 12 de noviembre de 2016
# - https://github.com/skylime/mi-core-base/blob/master/copy/etc/mailer.conf
# - https://github.com/skylime/mi-core-base/blob/master/copy/opt/core/var/mdata-setup/includes/52-nullmailer.sh
# - https://github.com/skylime/mi-core-base/blob/master/copy/var/zoneinit/includes/17-nullmailer.sh
- name: Desinstala Postfix
pkgin: name=postfix state=absent
- name: Instalar nullmailer
pkgin: name=nullmailer state=present
- name: Activamos el spool persistente para nullmailer
zfs: name={{ ansible_mounts.0.device }}/data/nullmailer-spool
mountpoint=/home/nullmailer-spool
state=present
# TODO ESTO ES NECESARIO PORQUE 'QUEUE' Y 'TMP' TIENEN
# QUE ESTAR EN EL MISMO SISTEMA DE FICHEROS.
- name: Creamos subdirectorios del spool
file: name=/home/nullmailer-spool/{{ item }}
state=directory
mode=0700 owner=nullmail group=nullmail
with_items:
- .
- queue
- tmp
# https://stackoverflow.com/questions/27006925/how-to-replace-a-directory-with-a-symlink-using-ansible
- name: Comprobamos el estado de los enlaces simbólicos
stat: path=/var/spool/nullmailer/{{ item }}
register: directorios
with_items:
- queue
- tmp
# Lo de "size" no es portable. Funciona en SmartOS. Al menos, en otros
# sistemas fallará de forma segura, porque no será "2".
- name: Eliminamos las carpetas del spool para crear los enlaces simbólicos luego, si están vacías
file: path=/var/spool/nullmailer/{{ item.item }} state=absent
when: item.stat.isdir is defined and item.stat.isdir and item.stat.size is defined and item.stat.size==2
with_items: "{{ directorios.results }}"
loop_control:
label: "{{ item.item }}"
- name: Creamos enlaces simbólicos al spool persistente
file: path=/var/spool/nullmailer/{{ item }}
src=/home/nullmailer-spool/{{ item }}
state=link
mode=0700 owner=nullmail group=nullmail
with_items:
- queue
- tmp
- name: Copiamos fichero de configuración de mailer.conf
copy: src=mailer.conf dest=/etc/mailer.conf
- name: Copiamos el fichero de configuración "remotes" de nullmailer
copy: src=remotes dest=/opt/local/etc/nullmailer/remotes
- name: Copiamos el fichero de configuración "adminaddr" de nullmailer
copy: src=adminaddr dest=/opt/local/etc/nullmailer/adminaddr
- name: Identificamos el nombre del host para nullmailer
shell: echo `/usr/bin/hostname`.jcea.es > /opt/local/etc/nullmailer/me
args:
creates: /opt/local/etc/nullmailer/me
- name: Preparamos el "wrapping" para nullmailer
command: mv /opt/local/libexec/nullmailer/nullmailer-inject
/opt/local/libexec/nullmailer/nullmailer-inject2
args:
creates: /opt/local/libexec/nullmailer/nullmailer-inject2
- name: Subimos el wrapper
copy: src=nullmailer-inject
dest=/opt/local/libexec/nullmailer/nullmailer-inject
mode=0755
- name: Activa nullmailer
service: name=nullmailer enabled=yes state=started
|