From 034491c3b2786ae4203b561392a39e0e3a82a138 Mon Sep 17 00:00:00 2001
From: hygienic-books <hygienic-books@tentic.net>
Date: Sat, 25 Mar 2023 23:47:40 +0100
Subject: [PATCH] feat(zabbix): Add Zabbix reload scripts

---
 zabbix_db_reload.sh     | 11 +++++++++++
 zabbix_server_reload.sh |  8 ++++++++
 zabbix_web_reload.sh    | 17 +++++++++++++++++
 3 files changed, 36 insertions(+)
 create mode 100644 zabbix_db_reload.sh
 create mode 100644 zabbix_server_reload.sh
 create mode 100644 zabbix_web_reload.sh

diff --git a/zabbix_db_reload.sh b/zabbix_db_reload.sh
new file mode 100644
index 0000000..aea516e
--- /dev/null
+++ b/zabbix_db_reload.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+cert_name="${1:?}"
+compose_ctx="${2:?}"
+
+chown -v '70:70' '/opt/docker-data/zabbixserver/postgres/conf/cert/'{'ca.cer',"${cert_name}"'.'{'cer','key'}}
+chmod -v '0600' '/opt/docker-data/zabbixserver/postgres/conf/cert/'{'ca.cer',"${cert_name}"'.'{'cer','key'}}
+if systemctl --quiet is-active docker.service; then
+    if [ "$( docker container inspect -f '{{.State.Running}}' 'zabbixserver-postgres-'"${compose_ctx}" )" = "true" ]; then
+        docker exec -t 'zabbixserver-postgres-'"${compose_ctx}" sh -c 'pg_ctl reload -s'
+    fi
+fi
diff --git a/zabbix_server_reload.sh b/zabbix_server_reload.sh
new file mode 100644
index 0000000..932e842
--- /dev/null
+++ b/zabbix_server_reload.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+compose_ctx="${1:?}"
+
+if systemctl --quiet is-active docker.service; then
+    if [ "$( docker container inspect -f '{{.State.Running}}' 'zabbixserver-zabbixserver-'"${compose_ctx}" )" = "true" ]; then
+        docker exec -t 'zabbixserver-zabbixserver-'"${compose_ctx}" sh -c 'zabbix_server --runtime-control config_cache_reload -s'
+    fi
+fi
diff --git a/zabbix_web_reload.sh b/zabbix_web_reload.sh
new file mode 100644
index 0000000..003adfa
--- /dev/null
+++ b/zabbix_web_reload.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+global_nginx_container_name="${1:?}"
+compose_ctx="${2:?}"
+reverse_fqdn_cert_id="${3:?}"
+
+rsync -av '/opt/docker-data/nginx/'"${global_nginx_container_name}"'/conf/certs/'"${reverse_fqdn_cert_id}"{'_fullchain.cer','.key'} '/opt/docker-data/zabbixserver/zabbixwebnginx/conf/cert/'
+chown -v -R '101:101' '/opt/docker-data/zabbixserver/zabbixwebnginx/conf/cert'
+if systemctl --quiet is-active docker.service; then
+    if [ "$( docker container inspect -f '{{.State.Running}}' "${global_nginx_container_name}" 2> /dev/null )" = "true" ]; then
+        docker exec -t "${global_nginx_container_name}" sh -c 'nginx -t &>/dev/null' && \
+        docker kill --signal SIGHUP "${global_nginx_container_name}"
+    fi
+    if [ "$( docker container inspect -f '{{.State.Running}}' 'zabbixserver-zabbixwebnginx-'"${compose_ctx}" 2> /dev/null )" = "true" ]; then
+        docker exec -t 'zabbixserver-zabbixwebnginx-'"${compose_ctx}" sh -c 'nginx -t &>/dev/null' && \
+        docker kill --signal SIGHUP 'zabbixserver-zabbixwebnginx-'"${compose_ctx}"
+    fi
+fi