From 08aac58570ebfa19e3f7c1cd6373c0ed7f338e41 Mon Sep 17 00:00:00 2001 From: Actaeus Curabitur Date: Mon, 25 Dec 2023 02:35:51 -0600 Subject: [PATCH 1/4] Added Jellyseerr --- pillars/roles/nginx/jellyseerr.sls | 20 ++++++++++++++++++++ pillars/servers/roles/server/jellyseerr.sls | 7 +++++++ states/roles/maintain/jellyseerr/init.sls | 14 ++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 pillars/roles/nginx/jellyseerr.sls create mode 100644 pillars/servers/roles/server/jellyseerr.sls create mode 100644 states/roles/maintain/jellyseerr/init.sls diff --git a/pillars/roles/nginx/jellyseerr.sls b/pillars/roles/nginx/jellyseerr.sls new file mode 100644 index 0000000..40d7d75 --- /dev/null +++ b/pillars/roles/nginx/jellyseerr.sls @@ -0,0 +1,20 @@ +nginx: + jellyseerr: + auth: none + default: no + https: + port: 5055 + prot: http + request: + auth: none + default: no + https: + port: 5055 + prot: http + +portal: + Media: + request: + name: Mediar Request Server + summary: Jellyseerr media request server + public: false diff --git a/pillars/servers/roles/server/jellyseerr.sls b/pillars/servers/roles/server/jellyseerr.sls new file mode 100644 index 0000000..410071a --- /dev/null +++ b/pillars/servers/roles/server/jellyseerr.sls @@ -0,0 +1,7 @@ +roles: + - server + - ssh + - nrpe + - saltminion + - nginx-proxy + - jellyseerr diff --git a/states/roles/maintain/jellyseerr/init.sls b/states/roles/maintain/jellyseerr/init.sls new file mode 100644 index 0000000..3d47de1 --- /dev/null +++ b/states/roles/maintain/jellyseerr/init.sls @@ -0,0 +1,14 @@ +{%- set os=grains['os'] -%} + +jellyseerr: + pkg.installed: + - name: jellyseerr + service.running: + - enable: true + +#/etc/conf.d/jellyfin: +# file.managed: +# - source: salt://roles/maintain/jellyfin/jellyfin +# - user: root +# - group: root +# - mode: 644 From 49f68f3dc5d2b4f0bf9dc3b5e1e20ba028b0e34f Mon Sep 17 00:00:00 2001 From: Actaeus Curabitur Date: Mon, 25 Dec 2023 03:26:25 -0600 Subject: [PATCH 2/4] added prowlarr --- pillars/roles/nginx/prowlarr.sls | 14 ++++++++++++++ pillars/servers/roles/server/arr.sls | 2 +- states/roles/maintain/prowlarr/init.sls | 22 ++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 pillars/roles/nginx/prowlarr.sls create mode 100644 states/roles/maintain/prowlarr/init.sls diff --git a/pillars/roles/nginx/prowlarr.sls b/pillars/roles/nginx/prowlarr.sls new file mode 100644 index 0000000..d62a4b9 --- /dev/null +++ b/pillars/roles/nginx/prowlarr.sls @@ -0,0 +1,14 @@ +nginx: + prowlarr: + auth: 2fa + default: no + https: + port: 9696 + prot: http + +portal: + Media: + prowlarr: + name: Torrent Indexers + summary: Prowlarr Server + public: false diff --git a/pillars/servers/roles/server/arr.sls b/pillars/servers/roles/server/arr.sls index ccb49e8..b4b8d9a 100644 --- a/pillars/servers/roles/server/arr.sls +++ b/pillars/servers/roles/server/arr.sls @@ -8,6 +8,6 @@ roles: - radarr - lidarr - bazarr - - jackett + - prowlarr - ytdownloader - podfox diff --git a/states/roles/maintain/prowlarr/init.sls b/states/roles/maintain/prowlarr/init.sls new file mode 100644 index 0000000..709ed90 --- /dev/null +++ b/states/roles/maintain/prowlarr/init.sls @@ -0,0 +1,22 @@ +/var/lib/prowlarr: + file.symlink: + - target: /mnt/data/prowlarr + - force: true + - mkdirs: true + +#package is in aur repo +prowlarr: + pkg.installed + +prowlarr_service: + service.running: + - name: prowlarr + - enable: true + +flaresolverr: + pkg.installed + +flaresolverr_service: + service.running: + - name: flaresolverr + - enable: true From a8d74f2ea715a9edc1c4c4b35ce43b8758fba75e Mon Sep 17 00:00:00 2001 From: Actaeus Curabitur Date: Mon, 25 Dec 2023 04:20:46 -0600 Subject: [PATCH 3/4] Added Readarr --- pillars/roles/nginx/readarr.sls | 14 ++++++++++++++ pillars/servers/roles/server/arr.sls | 1 + states/roles/maintain/readarr/init.sls | 14 ++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 pillars/roles/nginx/readarr.sls create mode 100644 states/roles/maintain/readarr/init.sls diff --git a/pillars/roles/nginx/readarr.sls b/pillars/roles/nginx/readarr.sls new file mode 100644 index 0000000..3175cab --- /dev/null +++ b/pillars/roles/nginx/readarr.sls @@ -0,0 +1,14 @@ +nginx: + readarr: + auth: 2fa + default: no + https: + port: 8787 + prot: http + +portal: + Media: + readarr: + name: Audiobook/ebook Downloader + summary: Readarr Server + public: false diff --git a/pillars/servers/roles/server/arr.sls b/pillars/servers/roles/server/arr.sls index b4b8d9a..3fe74b8 100644 --- a/pillars/servers/roles/server/arr.sls +++ b/pillars/servers/roles/server/arr.sls @@ -6,6 +6,7 @@ roles: - arr - sonarr - radarr + - readarr - lidarr - bazarr - prowlarr diff --git a/states/roles/maintain/readarr/init.sls b/states/roles/maintain/readarr/init.sls new file mode 100644 index 0000000..f75e474 --- /dev/null +++ b/states/roles/maintain/readarr/init.sls @@ -0,0 +1,14 @@ +/var/lib/readarr: + file.symlink: + - target: /mnt/data/readarr + - force: true + - mkdirs: true + +#package is in aur repo +readarr-develop: + pkg.installed + +readarr_service: + service.running: + - name: readarr + - enable: true From 0c74876b911595bc08eb10959f16e98bb3c32c1a Mon Sep 17 00:00:00 2001 From: Actaeus Curabitur Date: Mon, 25 Dec 2023 23:34:07 -0600 Subject: [PATCH 4/4] Added auto-ballooning --- states/roles/maintain/host/balloon.service | 10 +++++++ states/roles/maintain/host/balloon.sh | 21 ++++++++++++++ states/roles/maintain/host/balloon.timer | 9 ++++++ states/roles/maintain/host/init.sls | 32 ++++++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 states/roles/maintain/host/balloon.service create mode 100644 states/roles/maintain/host/balloon.sh create mode 100644 states/roles/maintain/host/balloon.timer diff --git a/states/roles/maintain/host/balloon.service b/states/roles/maintain/host/balloon.service new file mode 100644 index 0000000..7c1d861 --- /dev/null +++ b/states/roles/maintain/host/balloon.service @@ -0,0 +1,10 @@ +[Unit] +Description=Automatically adjust balloon size to free up unused memory + +[Service] +Type=oneshot +RemainAfterExit=no +ExecStart=/bin/bash /root/scripts/balloon.sh + +[Install] +WantedBy=multi-user.target diff --git a/states/roles/maintain/host/balloon.sh b/states/roles/maintain/host/balloon.sh new file mode 100644 index 0000000..6d4ee1a --- /dev/null +++ b/states/roles/maintain/host/balloon.sh @@ -0,0 +1,21 @@ +for domain in `virsh list --name` +do + virsh dommemstat --period 5 $domain + max=`virsh dominfo $domain | grep Max | grep -Po "\d+"` + current=`virsh dominfo $domain | grep Used | grep -Po "\d+"` + unused=`virsh dommemstat $domain | grep unused | grep -Po "\d+"` + used=$(($current - $unused)) + newfree=$((($max - $used) / 5)) + if test $newfree -gt 524288 + then + target=$(($newfree + $used)) + else + target=$((524288 + $used)) + fi + if test $target -gt $max + then + target=$max + fi + echo "$domain: $target" + virsh setmem $domain --size $target +done diff --git a/states/roles/maintain/host/balloon.timer b/states/roles/maintain/host/balloon.timer new file mode 100644 index 0000000..c8ac022 --- /dev/null +++ b/states/roles/maintain/host/balloon.timer @@ -0,0 +1,9 @@ +[Unit] +Description=Update balloon sizes every 10 minutes + +[Timer] +OnCalendar=*:0/10 +Unit=balloon.service + +[Install] +WantedBy=multi-user.target diff --git a/states/roles/maintain/host/init.sls b/states/roles/maintain/host/init.sls index e959f0a..a42b3ae 100644 --- a/states/roles/maintain/host/init.sls +++ b/states/roles/maintain/host/init.sls @@ -99,3 +99,35 @@ libvirtd: # - file: /etc/systemd/network/br1.netdev # - file: /etc/systemd/network/br1.network # - file: /etc/systemd/network/uplink.network + + +/root/scripts/balloon.sh: + file.managed: + - source: salt://roles/maintain/host/balloon.sh + - user: root + - group: root + - mode: 644 + +/lib/systemd/system/balloon.service: + file.managed: + - source: salt://roles/maintain/host/balloon.service + - user: root + - group: root + - mode: 644 + +/lib/systemd/system/balloon.timer: + file.managed: + - source: salt://roles/maintain/host/balloon.timer + - user: root + - group: root + - mode: 644 + +balloon-reload: + module.run: + - name: service.systemctl_reload + - onchanges: + - file: /lib/systemd/system/* + +balloon.timer: + service.running: + - enable: true