diff options
Diffstat (limited to 'src/conf')
-rw-r--r-- | src/conf/py-debug/aws.jsonc (renamed from src/conf/py-debug/aws.sample.jsonc) | 4 | ||||
l--------- | src/conf/py-debug/conf.d | 1 | ||||
-rw-r--r-- | src/conf/py-debug/conf.d/core.jsonc | 44 | ||||
-rw-r--r-- | src/conf/py-debug/localfs.jsonc (renamed from src/conf/py-debug/localfs.sample.jsonc) | 6 | ||||
-rw-r--r-- | src/conf/py-debug/null.jsonc | 141 | ||||
-rw-r--r-- | src/conf/py-debug/null.sample.jsonc | 140 | ||||
l--------- | src/conf/py-debug/palhm.jsonc | 1 | ||||
-rw-r--r-- | src/conf/py-sample/conf.d/core.json | 41 | ||||
-rw-r--r-- | src/conf/py-sample/sample.jsonc | 127 |
9 files changed, 316 insertions, 189 deletions
diff --git a/src/conf/py-debug/aws.sample.jsonc b/src/conf/py-debug/aws.jsonc index 46ad562..df9a63a 100644 --- a/src/conf/py-debug/aws.sample.jsonc +++ b/src/conf/py-debug/aws.jsonc @@ -1,6 +1,6 @@ // PALHM Instance Config { - "include": [ "conf/py-debug/conf.d/core.jsonc" ], + "include": [ "conf.d/core.json" ], "modules": [ "aws" ], "nb-workers": 0, // assumed $(nproc) - default // "nb-workers": 1, // to disable concurrent task despatch @@ -48,7 +48,7 @@ "path": "pm-list.gz", "group": "pre-start", "pipeline": [ - { "type": "exec", "exec-id": "dnf-list-installed" }, + { "type": "exec", "exec-id": "rpm-list-installed" }, { "type": "exec", "exec-id": "filter-gzip-plain" } ] }, diff --git a/src/conf/py-debug/conf.d b/src/conf/py-debug/conf.d new file mode 120000 index 0000000..a32163d --- /dev/null +++ b/src/conf/py-debug/conf.d @@ -0,0 +1 @@ +../py-sample/conf.d
\ No newline at end of file diff --git a/src/conf/py-debug/conf.d/core.jsonc b/src/conf/py-debug/conf.d/core.jsonc deleted file mode 100644 index 4afe7f5..0000000 --- a/src/conf/py-debug/conf.d/core.jsonc +++ /dev/null @@ -1,44 +0,0 @@ -// PALHM Core Config -{ - "execs": [ - // { - // "id": "Exec ID", - // "argv": [ "cmd", "--option1=opt1_val", "-o", "opt2_val" ], - // "env": { "NAME": "VAL" }, - // "ec": "0", // this is assumed - // "ec": "0-127", // inclusive range (not terminated by a signal) - // "ec": "<1", // range (only 0) - // "ec": "<=1", // range (0 and 1) - // "ec": ">0", // range (always fail) - // "ec": ">=0", // range (only 0) - // "vl-stderr": 1 // verbosity level of stderr produced by this process - // verbosity level of stderr produced by this process. Ignored if used - // as part of pipeline - // "vl-stdout": 2 - // }, - { - "id": "tar", - "argv": [ "/usr/bin/tar", "--xattrs", "--selinux" ] - }, - { - "id": "filter-xz-parallel", - "argv": [ "/usr/bin/xz", "-T0" ] - }, - { - "id": "filter-gzip-plain", - "argv": [ "/usr/bin/gzip" ] - }, - { - "id": "filter-zstd-plain", - "argv": [ "/usr/bin/zstd" ] - }, - { - "id": "dnf-list-installed", - "argv": [ "/usr/bin/dnf", "-yq", "list", "installed" ] - }, - { - "id": "lsblk-all-json", - "argv": [ "/usr/bin/lsblk", "-JbOa" ] - } - ] -} diff --git a/src/conf/py-debug/localfs.sample.jsonc b/src/conf/py-debug/localfs.jsonc index ec12808..a33060d 100644 --- a/src/conf/py-debug/localfs.sample.jsonc +++ b/src/conf/py-debug/localfs.jsonc @@ -1,12 +1,12 @@ // PALHM Instance Config { - "include": [ "conf/py-debug/conf.d/core.jsonc" ], + "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": 4, + "vl": 3, "tasks": [ { "id": "backup", @@ -45,7 +45,7 @@ "path": "pm-list.gz", "group": "pre-start", "pipeline": [ - { "type": "exec", "exec-id": "dnf-list-installed" }, + { "type": "exec", "exec-id": "rpm-list-installed" }, { "type": "exec", "exec-id": "filter-gzip-plain" } ] }, diff --git a/src/conf/py-debug/null.jsonc b/src/conf/py-debug/null.jsonc new file mode 100644 index 0000000..b5ce9f8 --- /dev/null +++ b/src/conf/py-debug/null.jsonc @@ -0,0 +1,141 @@ +{ + "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/null.sample.jsonc b/src/conf/py-debug/null.sample.jsonc deleted file mode 100644 index a83de95..0000000 --- a/src/conf/py-debug/null.sample.jsonc +++ /dev/null @@ -1,140 +0,0 @@ -// PALHM Instance Config -{ - "include": [ "conf/py-debug/conf.d/core.jsonc" ], - "nb-workers": 1, - "vl": 3, - "tasks": [ - { - "id": "backup", - "type": "backup", - "backend": "null", - "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": "dnf-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", - "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", - "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", - "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/palhm.jsonc b/src/conf/py-debug/palhm.jsonc new file mode 120000 index 0000000..fb68baf --- /dev/null +++ b/src/conf/py-debug/palhm.jsonc @@ -0,0 +1 @@ +aws.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 new file mode 100644 index 0000000..46d3feb --- /dev/null +++ b/src/conf/py-sample/conf.d/core.json @@ -0,0 +1,41 @@ +{ + "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" ] + }, + { + "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" ] + } + ] +} diff --git a/src/conf/py-sample/sample.jsonc b/src/conf/py-sample/sample.jsonc new file mode 100644 index 0000000..f1c4501 --- /dev/null +++ b/src/conf/py-sample/sample.jsonc @@ -0,0 +1,127 @@ +{ + "include": [ "/etc/palhm/conf.d/core.json" ], + // "modules": [ "aws" ], + "nb-workers": 0, + // "vl": 4, + "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": "default", + "type": "routine", + "routine": [ + { "type": "task", "task-id": "backup" }, + { "type": "task", "task-id": "update" }, + { "type": "task", "task-id": "reboot" } + ] + } + ] +} |