summaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-10-20 14:50:20 -0400
committerJesse Luehrs <doy@tozt.net>2018-10-20 14:50:20 -0400
commitef95165380ddcd86e7cdd750cad1cbbe0148e5a1 (patch)
treec43415221ec992aa36b2f4576d51c22cec91a2f0 /mail
parent3461e75ffd2b789521f71906e34fab385a5c691b (diff)
downloadpuppet-tozt-ef95165380ddcd86e7cdd750cad1cbbe0148e5a1.tar.gz
puppet-tozt-ef95165380ddcd86e7cdd750cad1cbbe0148e5a1.zip
put mail data on a persistent volume
Diffstat (limited to 'mail')
-rw-r--r--mail/mail/manifests/mailu.pp9
-rw-r--r--mail/mail/manifests/persistent.pp24
2 files changed, 28 insertions, 5 deletions
diff --git a/mail/mail/manifests/mailu.pp b/mail/mail/manifests/mailu.pp
index d7b4eec..b80e675 100644
--- a/mail/mail/manifests/mailu.pp
+++ b/mail/mail/manifests/mailu.pp
@@ -1,20 +1,19 @@
class mail::mailu {
+ include mail::persistent
include docker
file {
- "/mailu":
- ensure => directory;
"/mailu/docker-compose.yml":
source => "puppet:///modules/mail/docker-compose.yml",
- require => File["/mailu"];
+ require => Class["mail::persistent"];
"/mailu/.env.tmpl":
source => "puppet:///modules/mail/env",
- require => File["/mailu"];
+ require => Class["mail::persistent"];
}
secret { "/mailu/secret-key":
source => "mailu-secret-key",
- require => File["/mailu"];
+ require => Class["mail::persistent"];
}
exec { "create env file":
diff --git a/mail/mail/manifests/persistent.pp b/mail/mail/manifests/persistent.pp
new file mode 100644
index 0000000..db6adea
--- /dev/null
+++ b/mail/mail/manifests/persistent.pp
@@ -0,0 +1,24 @@
+class mail::persistent {
+ file {
+ "/mailu":
+ ensure => directory;
+ }
+
+ $fstab_line = "/dev/disk/by-id/scsi-0DO_Volume_mail-persistent /mailu ext4 rw,relatime 0 2"
+ exec { "populate fstab":
+ provider => shell,
+ command => "echo '${fstab_line}' >> /etc/fstab",
+ unless => "/usr/bin/grep -qF '${fstab_line}' /etc/fstab",
+ require => File["/mailu"];
+ }
+
+ exec { "mount /mailu":
+ provider => shell,
+ command => "/usr/bin/mount /mailu",
+ unless => "grep ' /mailu ' /proc/mounts",
+ require => [
+ File["/mailu"],
+ Exec["populate fstab"],
+ ];
+ }
+}