You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

158 lines
5.8 KiB

- name: Check vars
fail: msg="Missing domain name for first Vdomain creation"
when: domain is not defined
- name: Install pwgen
apt: pkg={{item}} state=installed update_cache=yes
with_items: "{{ firstpkg }}"
ignore_errors: no
- name: Randomly generate a postfix database password
shell: pwgen -y -B -s 80 1
register: dbpassword
- name: Install necessary packages for postfix standalone
apt: pkg={{item}} state=installed update_cache=yes
with_items: "{{ packages }}"
ignore_errors: no
- name: Downloading postfixadmin
get_url: url=https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2/postfixadmin-3.0.2.tar.gz?r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fpostfixadmin%2Ffiles%2F&ts=1489870165&use_mirror=netcologne validate_certs=no dest=/tmp/postfixadmin.tar.gz
- name: Creation of the right folder
file: path=/etc/postfixadmin/ state=directory mode=0755 recurse=yes
- name: Untar the pfxadmin
unarchive: src=/tmp/postfixadmin.tar.gz dest=/etc/postfixadmin/ copy=no
- name: enable SASLAuthd on boot
copy: src=etc-default-saslauthd dest=/etc/default/saslauthd
notify: restart saslauthd
- name: Adding facteur group and user
shell: groupadd -g 3000 facteur
ignore_errors: yes
- name: Adding facteur group and user
shell: useradd -d /home/facteur -m -u 3000 -g 3000 facteur
ignore_errors: yes
- name: Copy dynmap file
copy: src=etc-postfix-dynmap.cf dest=/etc/postfix/dynmap.cf
- name: creation of /sasl in postfixdir
file: path=/etc/postfix/sasl state=directory
- name: Copying file to directory previously created
copy: src=etc-postfix-sasl-smtpd.conf dest=/etc/postfix/sasl/smtpd.conf
notify: restart postfix
- name: adduser postfix sasl
shell: adduser postfix sasl
notify: restart dovecot
- name: Copy dovecot config files - dovecot.conf
template: src=dovecot.conf dest=/etc/dovecot/ owner=root mode=655
- name: Copy dovecot config files - dovecot-mysql.conf
template: src=dovecot-mysql.conf dest=/etc/dovecot/ owner=root mode=655
- name: Copy dovecot config file - 10-ssl.conf
copy: src=etc-dovecot-conf.d-10-ssl.conf dest=/etc/dovecot/conf.d/10-ssl.conf owner=root mode=644
- name: Copy postfixadmin config files - dbconfig.inc.php pfxadmin
template: src=dbconfig.inc.php dest=/etc/postfixadmin/ owner=root mode=655
- name: Copy postfix config files - dynmaps
template: src=dynamicmaps.cf dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - main.cf
template: src=main.cf dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - master.cf
template: src=master.cf dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - relay_domains.cf
template: src=mysql_relay_domains.cf dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - valias_maps.cf
template: src=mysql_virtual_alias_maps.cf dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - vbox_domains.cf
template: src=mysql_virtual_mailbox_domains.cf dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files vbox_maps.cf
template: src=mysql_virtual_mailbox_maps.cf dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - postfix-files
template: src=postfix-files dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - postfix-scripts
template: src=postfix-script dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - post-install
template: src=post-install dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - database script
template: src=root-postfix.sql dest=/etc/postfix/ owner=root mode=655
- name: Copy postfix config files - smtpd.conf
template: src=smtpd.conf dest=/etc/postfix/sasl/smtpd.conf owner=root mode=655
notify: restart postfix
- name: Autosigned cert - openssl query
command: openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj "/C=FR/ST=RA/L=Somewhere/O=Overtherainbow/CN={{ domain }}" -keyout /etc/ssl/mail.key -out /etc/ssl/mail.crt
- name: Create database for postfix
shell: mysql < /etc/postfix/root-postfix.sql
- name: Config amavis - content_filter_mode
copy: src=etc-amavis-conf.d-15-content_filter_mode dest=/etc/amavis/conf.d/15-content_filter_mode
- name: Config amavis - userfile
copy: src=etc-amavis-conf.d-50-user dest=/etc/amavis/conf.d/50-user
- name: adding amavis to clamav group
shell: usermod amavis -a -G clamav
- name: Vice versa
shell: usermod clamav -a -G amavis
- name: setting right perms to amavis homedir
shell: chmod g+rx /var/lib/amavis
- name: Virus repository
file: path=/var/spool/virusmails state=directory owner=amavis group=amavis
- name: update Spam-Assassin - will fail if playbook is played twice
shell: sa-update -D
notify: restart amavis
ignore_errors: yes
- name: Config Spam-Assassin
copy: src=etc-default-spamassassin dest=/etc/default/spamassassin
notify: restart spamassassin
- name: Config Postgrey
template: src=etc-default-postgrey dest=/etc/default/postgrey
notify: restart postgrey
- name: Install postfixadmin from debian repos
apt: pkg={{item}} state=installed update_cache=no install_recommends=yes
with_items: "{{ postfixadmin }}"
ignore_errors: no
- name: Update old postfixadmin with new one
shell: rsync -aP /etc/postfixadmin/postfixadmin-3.0.2/* /usr/share/postfixadmin/
- name: Chowning to the rightful user
shell: chown -R www-data. /usr/share/postfixadmin/
notify: restart apache
- name: Copy postfixadmin config files
template: src=config.inc.php dest=/etc/postfixadmin/ owner=root mode=655
- name: Also to usr share
template: src=config.inc.php dest=/usr/share/postfixadmin/ owner=www-data mode=655
- name: TODO
debug: msg="Now go to http://{{ domain }}/postfixadmin and follow the instructions documentation is here http://sourceforge.net/p/postfixadmin/wiki/Home/"
# vim: set textwidth=0 ft=yaml ts=2 sw=2 expandtab: