aboutsummaryrefslogtreecommitdiff
path: root/src/conf
diff options
context:
space:
mode:
authorDavid Timber <dxdt@dev.snart.me>2025-04-14 19:23:34 +0200
committerDavid Timber <dxdt@dev.snart.me>2025-04-14 19:23:34 +0200
commit57e1787cd25a425eb1c425dff58387f5da76037d (patch)
tree821a8c0b5e91ac0af01d12a6c0b61f04e58a7802 /src/conf
parent7a4e937f35c1510b33353aad6878c74fb721f554 (diff)
Some tree changes ...
- Move src/conf into src/palhm - Delete .vscode/settings.json
Diffstat (limited to 'src/conf')
-rw-r--r--src/conf/crontab6
-rw-r--r--src/conf/palhm-boot-report.service11
-rw-r--r--src/conf/py-debug/aws.jsonc163
l---------src/conf/py-debug/conf.d1
-rw-r--r--src/conf/py-debug/localfs.jsonc161
-rw-r--r--src/conf/py-debug/null.jsonc141
l---------src/conf/py-debug/palhm.jsonc1
-rw-r--r--src/conf/py-sample/conf.d/core.json85
-rw-r--r--src/conf/py-sample/sample.jsonc170
9 files changed, 0 insertions, 739 deletions
diff --git a/src/conf/crontab b/src/conf/crontab
deleted file mode 100644
index d0eeda6..0000000
--- a/src/conf/crontab
+++ /dev/null
@@ -1,6 +0,0 @@
-# PALHM will produce stderr on exception. Mail the output to root
-MAILTO="root"
-# Run default task every Sunday at midnight
-0 0 * * sun root /var/lib/PALHM/src/palhm.py -q run
-# Check dnssec validity every hour
-# 0 * * * * root systemd-run -qP -p User=palhm -p Nice=15 -p ProtectSystem=strict -p ReadOnlyPaths=/ -p PrivateDevices=true --wait /var/lib/PALHM/src/palhm.py -q run check-dnssec
diff --git a/src/conf/palhm-boot-report.service b/src/conf/palhm-boot-report.service
deleted file mode 100644
index 0b4ba67..0000000
--- a/src/conf/palhm-boot-report.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=PALHM send boot report mail
-After=postfix.service sendmail.service exim.service dovecot.service network-online.target
-
-[Service]
-Type=oneshot
-ExecStart=/var/lib/PALHM/src/palhm.py -q boot-report
-Nice=10
-
-[Install]
-WantedBy=multi-user.target
diff --git a/src/conf/py-debug/aws.jsonc b/src/conf/py-debug/aws.jsonc
deleted file mode 100644
index 23e8faf..0000000
--- a/src/conf/py-debug/aws.jsonc
+++ /dev/null
@@ -1,163 +0,0 @@
-// PALHM Instance Config
-{
- "include": [ "conf.d/core.json" ],
- "modules": [ "aws" ],
- "nb-workers": 0, // assumed $(nproc) - default
- // "nb-workers": 1, // to disable concurrent task despatch
- // To unlimit the number of workers.
- // Does not fail on resource alloc failure.
- // "nb-workers": -1,
- "vl": 4,
- "tasks": [
- {
- "id": "backup",
- "type": "backup",
- "backend": "aws-s3",
- "backend-param": {
- // "profile": "default",
- "bucket": "palhm.test",
- "root": "/palhm/backup",
- "prefix": {
- "type": "default"
- // "type": "iso8601",
- // "timespec": "seconds",
- // "tz": "utc"
- },
- // "sink-storage-class": "STANDARD_IA",
- // "rot-storage-class": "ONEZONE_IA",
- "nb-copy-limit": 2, // or Infinity assumed(not in JSON spec)
- "root-size-limit": "Infinity" // or Infinity assumed
- },
- "object-groups": [
- { "id": "pre-start" },
- {
- "id": "data-dump",
- "depends": [ "pre-start" ]
- },
- {
- "id": "tar-media-0",
- "depends": [ "data-dump" ]
- },
- {
- "id": "tar-media-1",
- "depends": [ "data-dump" ]
- }
- ],
- "objects": [
- {
- "path": "pm-list.gz",
- "group": "pre-start",
- "pipeline": [
- { "type": "exec", "exec-id": "rpm-list-installed" },
- { "type": "exec", "exec-id": "filter-gzip-plain" }
- ]
- },
- {
- "path": "lsblk.json.gz",
- "group": "pre-start",
- "pipeline": [
- {
- "type": "exec-append",
- "exec-id": "lsblk-all-json",
- "argv": [ "-a" ]
- },
- { "type": "exec", "exec-id": "filter-gzip-plain" }
- ]
- },
- {
- "path": "random-dump.sql.xz",
- "alloc-size": 2097152,
- "group": "data-dump",
- "pipeline": [
- {
- "type": "exec-inline",
- "argv": [
- "/bin/dd",
- "if=/dev/urandom",
- "bs=4096",
- "count=512",
- "status=none"
- ]
- },
- { "type": "exec", "exec-id": "filter-xz-parallel" }
- ]
- },
- {
- "path": "random-dump.0.xz",
- "alloc-size": 2097152,
- "group": "tar-media-0",
- "pipeline": [
- {
- "type": "exec-inline",
- "argv": [
- "/bin/dd",
- "if=/dev/zero",
- "bs=4096",
- "count=512",
- "status=none"
- ]
- },
- { "type": "exec", "exec-id": "filter-xz-parallel" }
- ]
- },
- {
- "path": "random-dump.1.xz",
- "alloc-size": 2097152,
- "group": "tar-media-1",
- "pipeline": [
- {
- "type": "exec-inline",
- "argv": [
- "/bin/dd",
- "if=/dev/zero",
- "bs=4096",
- "count=512",
- "status=none"
- ]
- },
- { "type": "exec", "exec-id": "filter-xz-parallel" }
- ]
- }
- ]
- },
- {
- "id": "update",
- "type": "routine",
- "routine": [
- {
- "type": "exec-inline",
- "argv": [ "/bin/echo", "0" ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/bin/sleep", "1" ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/bin/echo", "1" ]
- }
- ]
- },
- {
- "id": "default",
- "type": "routine",
- "routine": [
- { "type": "task", "task-id": "backup" },
- { "type": "task", "task-id": "update" },
- {
- // Block SIGTERM from systemd/init.d so the program is not
- // affected by the reboot command.
- "type": "builtin",
- "builtin-id": "sigmask",
- "param": [
- { "action": "block", "sig": [ "TERM" ] }
- ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/bin/true" ]
- }
- ]
- }
- ]
-}
diff --git a/src/conf/py-debug/conf.d b/src/conf/py-debug/conf.d
deleted file mode 120000
index a32163d..0000000
--- a/src/conf/py-debug/conf.d
+++ /dev/null
@@ -1 +0,0 @@
-../py-sample/conf.d \ No newline at end of file
diff --git a/src/conf/py-debug/localfs.jsonc b/src/conf/py-debug/localfs.jsonc
deleted file mode 100644
index 80efd5d..0000000
--- a/src/conf/py-debug/localfs.jsonc
+++ /dev/null
@@ -1,161 +0,0 @@
-// PALHM Instance Config
-{
- "include": [ "conf.d/core.json" ],
- "nb-workers": 0, // assumed $(nproc) - default
- // "nb-workers": 1, // to disable concurrent task despatch
- // To unlimit the number of workers.
- // Does not fail on resource alloc failure.
- // "nb-workers": -1,
- "vl": 3,
- "tasks": [
- {
- "id": "backup",
- "type": "backup",
- "backend": "localfs",
- "backend-param": {
- "root": "/var/tmp/palhm-backup-root",
- "prefix": {
- "type": "default"
- // "type": "iso8601",
- // "timespec": "seconds",
- // "tz": "utc"
- },
- // "dmode": "755",
- // "fmode": "644",
- "nb-copy-limit": 2,
- "root-size-limit": "Infinity",
- "block-size": 4096
- },
- "object-groups": [
- { "id": "pre-start" },
- {
- "id": "data-dump",
- "depends": [ "pre-start" ]
- },
- {
- "id": "tar-media-0",
- "depends": [ "data-dump" ]
- },
- {
- "id": "tar-media-1",
- "depends": [ "data-dump" ]
- }
- ],
- "objects": [
- {
- "path": "pm-list.gz",
- "group": "pre-start",
- "pipeline": [
- { "type": "exec", "exec-id": "rpm-list-installed" },
- { "type": "exec", "exec-id": "filter-gzip-plain" }
- ]
- },
- {
- "path": "lsblk.json.gz",
- "group": "pre-start",
- "pipeline": [
- {
- "type": "exec-append",
- "exec-id": "lsblk-all-json",
- "argv": [ "-a" ]
- },
- { "type": "exec", "exec-id": "filter-gzip-plain" }
- ]
- },
- {
- "path": "random-dump.sql.xz",
- "alloc-size": 2097152,
- "group": "data-dump",
- "pipeline": [
- {
- "type": "exec-inline",
- "argv": [
- "/bin/dd",
- "if=/dev/urandom",
- "bs=4096",
- "count=512",
- "status=none"
- ]
- },
- { "type": "exec", "exec-id": "filter-xz-parallel" }
- ]
- },
- {
- "path": "random-dump.0.xz",
- "alloc-size": 2097152,
- "group": "tar-media-0",
- "pipeline": [
- {
- "type": "exec-inline",
- "argv": [
- "/bin/dd",
- "if=/dev/zero",
- "bs=4096",
- "count=512",
- "status=none"
- ]
- },
- { "type": "exec", "exec-id": "filter-xz-parallel" }
- ]
- },
- {
- "path": "random-dump.1.xz",
- "alloc-size": 2097152,
- "group": "tar-media-1",
- "pipeline": [
- {
- "type": "exec-inline",
- "argv": [
- "/bin/dd",
- "if=/dev/zero",
- "bs=4096",
- "count=512",
- "status=none"
- ]
- },
- { "type": "exec", "exec-id": "filter-xz-parallel" }
- ]
- }
- ]
- },
- {
- "id": "update",
- "type": "routine",
- "routine": [
- {
- "type": "exec-inline",
- "argv": [ "/bin/echo", "0" ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/bin/sleep", "1" ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/bin/echo", "1" ]
- }
- ]
- },
- {
- "id": "default",
- "type": "routine",
- "routine": [
- { "type": "task", "task-id": "backup" },
- { "type": "task", "task-id": "update" },
- {
- // Block SIGTERM from systemd/init.d so the program is not
- // affected by the reboot command.
- "type": "builtin",
- "builtin-id": "sigmask",
- "param": [
- { "action": "block", "sig": [ "TERM" ] }
- ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/bin/true" ]
- }
- ]
- }
- ]
-}
diff --git a/src/conf/py-debug/null.jsonc b/src/conf/py-debug/null.jsonc
deleted file mode 100644
index b5ce9f8..0000000
--- a/src/conf/py-debug/null.jsonc
+++ /dev/null
@@ -1,141 +0,0 @@
-{
- "include": [ "conf.d/core.json" ],
- "nb-workers": 0, // assumed $(nproc)
- // "nb-workers": 1, // to disable concurrent task despatch
- // "nb-workers": -1, // to unlimit the number of workers.
- "vl": 3,
- "tasks": [
- {
- "id": "backup",
- "type": "backup",
- "backend": "null",
- "object-groups": [
- { "id": "pre-start" },
- {
- "id": "data-dump",
- "depends": [ "pre-start" ]
- },
- {
- "id": "tar-0",
- "depends": [ "data-dump" ]
- },
- {
- "id": "tar-1",
- "depends": [ "data-dump" ]
- }
- ],
- "objects": [
- {
- "path": "pm-list.zstd",
- "group": "pre-start",
- "pipeline": [
- { "type": "exec", "exec-id": "rpm-list-installed" },
- { "type": "exec", "exec-id": "filter-zstd-plain" }
- ]
- },
- {
- "path": "lsblk.json.zstd",
- "group": "pre-start",
- "pipeline": [
- { "type": "exec", "exec-id": "lsblk-all-json" },
- { "type": "exec", "exec-id": "filter-zstd-plain" }
- ]
- },
- {
- "path": "db.sql.zstd",
- "group": "data-dump",
- "pipeline": [
- {
- "type": "exec-inline",
- "argv": [
- "/bin/mysqldump",
- "-uroot",
- "--all-databases"
- ]
- },
- { "type": "exec", "exec-id": "filter-zstd-parallel" }
- ]
- },
- {
- "path": "root.tar.zstd",
- "group": "tar-0",
- "pipeline": [
- {
- "type": "exec-append",
- "exec-id": "tar",
- "argv": [
- "-C",
- "/",
- "/etc",
- "/home",
- "/root",
- "/var"
- ]
- },
- { "type": "exec", "exec-id": "filter-zstd-parallel" }
- ]
- },
- {
- "path": "srv.tar.zstd",
- "group": "tar-1",
- "pipeline": [
- {
- "type": "exec-append",
- "exec-id": "tar",
- "argv": [
- "-C",
- "/",
- "/srv"
- ]
- },
- { "type": "exec", "exec-id": "filter-zstd-parallel" }
- ]
- }
- ]
- },
- {
- "id": "update",
- "type": "routine",
- "routine": [
- {
- "type": "exec-inline",
- "argv": [ "/bin/dnf", "--refresh", "-yq", "update" ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/bin/sa-update" ]
- }
- ]
- },
- {
- "id": "reboot",
- "type": "routine",
- "routine": [
- {
-/*
- * Block SIGTERM from systemd/init.d so PALHM can exit gracefully after issuing
- * reboot.
- */
- "type": "builtin",
- "builtin-id": "sigmask",
- "param": [
- { "action": "block", "sig": [ "TERM" ] }
- ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/sbin/reboot" ]
- }
- ]
- },
- {
- "id": "default",
- "type": "routine",
- "routine": [
- { "type": "task", "task-id": "backup" },
- { "type": "task", "task-id": "update" },
- { "type": "task", "task-id": "reboot" }
- ]
- }
- ]
-}
diff --git a/src/conf/py-debug/palhm.jsonc b/src/conf/py-debug/palhm.jsonc
deleted file mode 120000
index c40e201..0000000
--- a/src/conf/py-debug/palhm.jsonc
+++ /dev/null
@@ -1 +0,0 @@
-../py-sample/sample.jsonc \ No newline at end of file
diff --git a/src/conf/py-sample/conf.d/core.json b/src/conf/py-sample/conf.d/core.json
deleted file mode 100644
index fac28a0..0000000
--- a/src/conf/py-sample/conf.d/core.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "execs": [
- {
- "id": "tar",
- "argv": [
- "/bin/tar",
- "--xattrs",
- "--selinux",
- "--warning=none",
- "-cf",
- "-"
- ],
- "ec": "<2"
- },
- {
- "id": "filter-xz-parallel",
- "argv": [ "/bin/xz", "-T0" ]
- },
- {
- "id": "filter-gzip-plain",
- "argv": [ "/bin/gzip" ]
- },
- {
- "id": "filter-zstd-plain",
- "argv": [ "/bin/zstd" ]
- },
- {
- "id": "filter-zstd-parallel",
- "argv": [ "/bin/zstd", "-T0" ]
- },
- {
- "id": "rpm-list-installed",
- "argv": [
- "/bin/rpm",
- "-qa",
- "--qf",
- "%{name}\\t%{version}-%{release}.%{arch}\\t%{vendor}\\n"
- ]
- },
- {
- "id": "dnf-list-userinstalled",
- "argv": [
- "/bin/dnf",
- "history",
- "userinstalled"
- ]
- },
- {
- "id": "dnf-group-list-installed",
- "argv": [
- "/bin/dnf",
- "--cacheonly",
- "-q",
- "group",
- "list",
- "--installed"
- ],
- "ec": " >= 0"
- },
- {
- "id": "dpkg-list-installed",
- "argv": [ "/bin/dpkg-query", "-l" ]
- },
- {
- "id": "lsblk-all-json",
- "argv": [ "/bin/lsblk", "-JbOa" ]
- },
- {
- "id": "os-release",
- "argv": [ "/bin/cat", "/etc/os-release" ]
- },
- {
- "id": "dig-dnssec",
- "argv": [ "/bin/dig", "+short", "+dnssec", "+notcp" ]
- },
- {
- "id": "grep-any",
- "argv": [ "/bin/grep", "." ]
- },
- {
- "id": "null-stdout-sink",
- "argv": [ "/bin/cp", "/dev/stdin", "/dev/null" ]
- }
- ]
-}
diff --git a/src/conf/py-sample/sample.jsonc b/src/conf/py-sample/sample.jsonc
deleted file mode 100644
index 2a349c1..0000000
--- a/src/conf/py-sample/sample.jsonc
+++ /dev/null
@@ -1,170 +0,0 @@
-{
- "include": [ "/etc/palhm/conf.d/core.json" ],
- "modules": [ "aws" ],
- "nb-workers": 0,
- // "vl": 4,
- "boot-report": {
- // "mua": "stdout",
- "mua": "mailx",
- // "mua": "aws-sns",
- "mua-param": {
- "int-opts": [ "smtp=localhost" ]
- },
- "mail-to": [ "root" ],
- // "subject": "Custom Boot Report Subject from {hostname}",
- // "header": "Custom header content with {hostname} substitution."
- // "uptime-since": true,
- // "uptime": true,
- // "bootid": true,
- // "boot-wait": "systemd",
- "delay": 5
- },
- "tasks": [
- {
- "id": "backup",
- "type": "backup",
- "backend": "null",
- "backend-param": {},
- "object-groups": [
- { "id": "meta-run" },
- {
- "id": "data-dump",
- "depends": [ "meta-run" ]
- },
- {
- "id": "tar-root",
- "depends": [ "data-dump" ]
- }
- ],
- "objects": [
- {
- "path": "os-release",
- "group": "meta-run",
- "pipeline": [ { "type": "exec" , "exec-id": "os-release" } ]
- },
- {
- "path": "pm-list.zstd",
- "group": "meta-run",
- "pipeline": [
- { "type": "exec", "exec-id": "rpm-list-installed" },
- { "type": "exec", "exec-id": "filter-zstd-plain" }
- ]
- },
- {
- "path": "lsblk.json.zstd",
- "group": "meta-run",
- "pipeline": [
- { "type": "exec", "exec-id": "lsblk-all-json" },
- { "type": "exec", "exec-id": "filter-zstd-plain" }
- ]
- },
- // {
- // "path": "db.sql.zstd",
- // "group": "data-dump",
- // "pipeline": [
- // {
- // "type": "exec-inline",
- // "argv": [
- // "/bin/mysqldump",
- // "-uroot",
- // "--all-databases"
- // ]
- // // "ec": "<=2" // don't fail when the DB is offline
- // },
- // { "type": "exec", "exec-id": "filter-zstd-parallel" }
- // ]
- // },
- {
- "path": "root.tar.zstd",
- "group": "tar-root",
- "pipeline": [
- {
- "type": "exec-append",
- "exec-id": "tar",
- "argv": [
- "-C",
- "/",
- "etc",
- "home",
- "root",
- "var"
- ]
- },
- { "type": "exec", "exec-id": "filter-zstd-parallel" }
- ]
- }
- ]
- },
- {
- "id": "update",
- "type": "routine",
- "routine": [
- {
- "type": "exec-inline",
- "argv": [ "/bin/dnf", "--refresh", "-yq", "update" ]
- }
- // {
- // "type": "exec-inline",
- // "argv": [ "/bin/sa-update" ]
- // }
- ]
- },
- {
- "id": "reboot",
- "type": "routine",
- "routine": [
- {
-/*
- * Block SIGTERM from systemd/init.d so PALHM can exit gracefully after issuing
- * reboot.
- */
- "type": "builtin",
- "builtin-id": "sigmask",
- "param": [
- { "action": "block", "sig": [ "TERM" ] }
- ]
- },
- {
- "type": "exec-inline",
- "argv": [ "/sbin/reboot" ]
- }
- ]
- },
- {
- "id": "check-dnssec",
- "type": "backup",
- "backend": "null",
- "objects": [
- {
- "path": "example.com", // Placeholder
- "pipeline": [
- /*
- * Check if dig can query the record with the DNSSEC
- * validation flag. Empty stdout with zero return code
- * means SERVFAIL.
- */
- {
- "type": "exec-append",
- "exec-id": "dig-dnssec",
- "argv": [ "ANY", "example.com" ]
- },
- /*
- * Trap for empty dig output grep will return non-zero if
- * dig have not produced any output
- */
- { "type": "exec", "exec-id": "grep-any" }
- ]
- }
- ]
- },
- {
- "id": "default",
- "type": "routine",
- "routine": [
- { "type": "task", "task-id": "backup" },
- { "type": "task", "task-id": "update" },
- { "type": "task", "task-id": "reboot" }
- ]
- }
- ]
-}