summaryrefslogtreecommitdiff
path: root/ansible/roles/mail-server
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-03-11 17:08:06 +0200
committerLars Wirzenius <liw@liw.fi>2017-03-11 17:08:06 +0200
commit330fe319340ae9513b61a9999a0b212482ff1777 (patch)
tree7bfac3c077153afeacf4d762ccfb5b464cae0c69 /ansible/roles/mail-server
parenta7ffb02a83b6c4873e24b751bdf5d52ea9af3a31 (diff)
downloadansibleness-330fe319340ae9513b61a9999a0b212482ff1777.tar.gz
Start pieni.net mail server
Diffstat (limited to 'ansible/roles/mail-server')
-rw-r--r--ansible/roles/mail-server/files/aliases3
-rw-r--r--ansible/roles/mail-server/files/virtual2
-rw-r--r--ansible/roles/mail-server/handlers/main.yml6
-rw-r--r--ansible/roles/mail-server/tasks/main.yml29
-rw-r--r--ansible/roles/mail-server/templates/postfix.main.cf.j224
5 files changed, 64 insertions, 0 deletions
diff --git a/ansible/roles/mail-server/files/aliases b/ansible/roles/mail-server/files/aliases
new file mode 100644
index 0000000..645701f
--- /dev/null
+++ b/ansible/roles/mail-server/files/aliases
@@ -0,0 +1,3 @@
+postmaster: root
+abuse: root
+root: liw
diff --git a/ansible/roles/mail-server/files/virtual b/ansible/roles/mail-server/files/virtual
new file mode 100644
index 0000000..839118b
--- /dev/null
+++ b/ansible/roles/mail-server/files/virtual
@@ -0,0 +1,2 @@
+liw.fi -
+postmaster@liw.fi liw
diff --git a/ansible/roles/mail-server/handlers/main.yml b/ansible/roles/mail-server/handlers/main.yml
new file mode 100644
index 0000000..73935ab
--- /dev/null
+++ b/ansible/roles/mail-server/handlers/main.yml
@@ -0,0 +1,6 @@
+- name: restart postfix
+ systemd:
+ name: postfix
+ state: restarted
+
+ \ No newline at end of file
diff --git a/ansible/roles/mail-server/tasks/main.yml b/ansible/roles/mail-server/tasks/main.yml
new file mode 100644
index 0000000..dad2245
--- /dev/null
+++ b/ansible/roles/mail-server/tasks/main.yml
@@ -0,0 +1,29 @@
+- name: install postfix
+ apt:
+ name: postfix
+
+- name: set /etc/mailname
+ shell: |
+ echo "{{ mail_hostname }}" > /etc/mailname
+
+- name: install aliases map
+ copy:
+ src: aliases
+ dest: /etc/aliases
+
+- name: compile aliases map
+ shell: newaliases
+
+- name: install virtual map
+ copy:
+ src: virtual
+ dest: /etc/postfix/virtual
+
+- name: compile virtual map
+ shell: postmap /etc/postfix/virtual
+
+- name: configure postfix main.cf
+ template:
+ src: postfix.main.cf.j2
+ dest: /etc/postfix/main.cf
+ notify: restart postfix
diff --git a/ansible/roles/mail-server/templates/postfix.main.cf.j2 b/ansible/roles/mail-server/templates/postfix.main.cf.j2
new file mode 100644
index 0000000..ba5c09f
--- /dev/null
+++ b/ansible/roles/mail-server/templates/postfix.main.cf.j2
@@ -0,0 +1,24 @@
+# Who are we? This varies depending on host.
+myhostname = {{ mail_hostname }}
+mydestination = {{ mail_hostname }}, localhost.localdomain, localhost
+
+
+# Configure various things. These should be the same everywhere.
+mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+inet_interfaces = all
+myorigin = /etc/mailname
+relayhost =
+alias_maps = hash:/etc/aliases
+alias_database = hash:/etc/aliases
+virtual_alias_maps = hash:/etc/postfix/virtual
+mailbox_size_limit = 0
+home_mailbox = Maildir/
+
+# Configure TLS. We use the snakeoild self-signed certificate Debian
+# creates automatically. MTAs don't generally care, this is just for
+# opportunistic crypto use, but we don't rely on it.
+smtpd_use_tls = yes
+smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
+smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
+smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
+smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache