diff options
author | Jesse Luehrs <doy@tozt.net> | 2018-10-13 22:17:57 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2018-10-13 22:17:57 -0400 |
commit | 34abf4aee2ea40e234ac7cce31673c744a8ece31 (patch) | |
tree | f97f9a6db5fe8b4713b4a6ba19e2a23dfe2b0928 /modules/tozt/manifests/persistent.pp | |
parent | 6f109e80a2eea7b7dd8effa96bc7636cfcc01473 (diff) | |
download | puppet-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.pp | 71 |
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"; + } +} |