summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--manifests/partofme.pp1
-rw-r--r--modules/partofme/manifests/pihole.pp5
-rw-r--r--modules/pihole/manifests/init.pp30
-rw-r--r--modules/pihole/templates/pihole.service11
-rw-r--r--modules/podman/manifests/init.pp5
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;
+ }
+}