diff options
-rw-r--r-- | manifests/partofme.pp | 1 | ||||
-rw-r--r-- | modules/partofme/manifests/pihole.pp | 5 | ||||
-rw-r--r-- | modules/pihole/manifests/init.pp | 30 | ||||
-rw-r--r-- | modules/pihole/templates/pihole.service | 11 | ||||
-rw-r--r-- | modules/podman/manifests/init.pp | 5 |
5 files changed, 52 insertions, 0 deletions
diff --git a/manifests/partofme.pp b/manifests/partofme.pp index a86df6a..147fe1e 100644 --- a/manifests/partofme.pp +++ b/manifests/partofme.pp @@ -14,5 +14,6 @@ node 'partofme', 'partofme.localdomain' { include partofme::mdadm include partofme::monitoring include partofme::persistent + include partofme::pihole include partofme::twitch } diff --git a/modules/partofme/manifests/pihole.pp b/modules/partofme/manifests/pihole.pp new file mode 100644 index 0000000..0f802c6 --- /dev/null +++ b/modules/partofme/manifests/pihole.pp @@ -0,0 +1,5 @@ +class partofme::pihole { + class { "pihole": + dir => "/media/persistent/pihole"; + } +} diff --git a/modules/pihole/manifests/init.pp b/modules/pihole/manifests/init.pp new file mode 100644 index 0000000..7de72c1 --- /dev/null +++ b/modules/pihole/manifests/init.pp @@ -0,0 +1,30 @@ +class pihole($dir) { + include podman + + file { + $dir: + ensure => directory; + "${dir}/etc-pihole": + ensure => directory, + require => File[$dir]; + "${dir}/etc-dnsmasq.d": + ensure => directory, + require => File[$dir]; + "${dir}/var-log": + ensure => directory, + require => File[$dir]; + "${dir}/var-log/pihole.log": + content => "", + require => File["${dir}/var-log"]; + } + + systemd::service { "pihole": + source => "puppet:///modules/pihole/pihole.service"; + } + + service { "pihole": + ensure => "running", + enable => true, + subscribe => Systemd::Service["pihole"]; + } +} diff --git a/modules/pihole/templates/pihole.service b/modules/pihole/templates/pihole.service new file mode 100644 index 0000000..bfcd3d9 --- /dev/null +++ b/modules/pihole/templates/pihole.service @@ -0,0 +1,11 @@ +[Unit] +Description=runs pihole +After=network.target + +[Service] +ExecStart=/usr/bin/podman run --rm --name pihole -p 53:53/tcp -p 53:53/udp -p 80:80 -e TZ=America/New_York -v "<%= @dir %>/etc-pihole/:/etc/pihole/" -v "<%= @dir %>/etc-dnsmasq.d/:/etc/dnsmasq.d/" -v "<%= @dir %>/var-log/pihole.log:/var/log/pihole.log" --dns 127.0.0.1 --dns 4.2.2.4 --hostname pi.hole -e VIRTUAL_HOST=pi.hole -e PROXY_LOCATION=pi.hole -e WEBPASSWORD=test -e ServerIP=127.0.0.1 docker.io/pihole/pihole:latest +ExecStop=/usr/bin/docker stop pihole +Restart=always + +[Install] +WantedBy=default.target diff --git a/modules/podman/manifests/init.pp b/modules/podman/manifests/init.pp new file mode 100644 index 0000000..c40b41d --- /dev/null +++ b/modules/podman/manifests/init.pp @@ -0,0 +1,5 @@ +class podman { + package { "podman": + ensure => installed; + } +} |