summaryrefslogtreecommitdiffstats
path: root/modules/tozt/manifests/persistent.pp
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2018-10-13 22:17:57 -0400
committerJesse Luehrs <doy@tozt.net>2018-10-13 22:17:57 -0400
commit34abf4aee2ea40e234ac7cce31673c744a8ece31 (patch)
treef97f9a6db5fe8b4713b4a6ba19e2a23dfe2b0928 /modules/tozt/manifests/persistent.pp
parent6f109e80a2eea7b7dd8effa96bc7636cfcc01473 (diff)
downloadpuppet-tozt-34abf4aee2ea40e234ac7cce31673c744a8ece31.tar.gz
puppet-tozt-34abf4aee2ea40e234ac7cce31673c744a8ece31.zip
put important state on a persistent disk
Diffstat (limited to 'modules/tozt/manifests/persistent.pp')
-rw-r--r--modules/tozt/manifests/persistent.pp71
1 files changed, 71 insertions, 0 deletions
diff --git a/modules/tozt/manifests/persistent.pp b/modules/tozt/manifests/persistent.pp
new file mode 100644
index 0000000..e4baabe
--- /dev/null
+++ b/modules/tozt/manifests/persistent.pp
@@ -0,0 +1,71 @@
+class tozt::persistent {
+ file {
+ "/media":
+ ensure => directory;
+ "/media/persistent":
+ ensure => directory,
+ require => File["/media"],
+ }
+
+ $fstab_line = "/dev/disk/by-id/scsi-0DO_Volume_tozt-persistent /media/persistent 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["/media/persistent"],
+ }
+
+ exec { "mount /media/persistent":
+ provider => shell,
+ command => "/usr/bin/mount /media/persistent",
+ unless => "grep '^/media/persistent ' /proc/mounts",
+ require => [
+ File["/media/persistent"],
+ Exec["populate fstab"],
+ ]
+ }
+
+ file {
+ [
+ "/media/persistent/public_html",
+ "/media/persistent/paste",
+ "/media/persistent/certbot",
+ ]:
+ ensure => directory,
+ require => Exec["mount /media/persistent"];
+ [
+ "/media/persistent/public_html/doy",
+ "/media/persistent/paste/doy",
+ ]:
+ ensure => directory,
+ owner => 'doy',
+ group => 'doy',
+ require => [
+ User['doy'],
+ Group['doy'],
+ ];
+ "/home/doy/public_html":
+ ensure => link,
+ target => "/media/persistent/public_html/doy",
+ owner => 'doy',
+ group => 'doy',
+ require => [
+ User['doy'],
+ Group['doy'],
+ File["/home/doy"],
+ ];
+ "/home/doy/paste":
+ ensure => link,
+ target => "/media/persistent/paste/doy",
+ owner => 'doy',
+ group => 'doy',
+ require => [
+ User['doy'],
+ Group['doy'],
+ File["/home/doy"],
+ ];
+ "/etc/letsencrypt":
+ ensure => link,
+ target => "/media/persistent/certbot";
+ }
+}