From a2f651ab7c304c366bb7589d5e5216e89ff4e4b4 Mon Sep 17 00:00:00 2001 From: torben Date: Thu, 24 Mar 2016 18:55:14 +0100 Subject: Improve dummy module. --- .../dnbd3-rootfs/hooks/prepare-root-partition.sh | 9 +++--- dev-tools/exampleDracutModule/apply-package.sh | 37 +++++++++++++++++++--- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/builder/dnbd3-rootfs/hooks/prepare-root-partition.sh b/builder/dnbd3-rootfs/hooks/prepare-root-partition.sh index b57a915c..f97b04ce 100755 --- a/builder/dnbd3-rootfs/hooks/prepare-root-partition.sh +++ b/builder/dnbd3-rootfs/hooks/prepare-root-partition.sh @@ -84,15 +84,13 @@ else writable_device="$(losetup --find)" losetup "$writable_device" "$ramdisk_location" fi - - # endregion # region connect dnbd3 IFS_backup="$IFS" IFS="," return_code=1 for host in ${SLX_DNBD3_SERVERS}; do - logging.info "Trying host \"host\"." + logging.info "Trying host \"$host\"." if systemd-preserve-process-marker dnbd3-client --host "$host" --image \ "${SLX_DNBD3_IMAGE}" --device "$SLX_DNBD3_DEVICE" \ --rid "$SLX_DNBD3_RID" @@ -104,8 +102,9 @@ done IFS="$IFS_backup" if [[ $return_code != 0 ]]; then - logging.warn "Failed to connect '${SLX_DNBD3_IMAGE}' from" \ - "one of '$SLX_DNBD3_SERVERS' to '$SLX_DNBD3_DEVICE'." + logging.warn "Failed to connect \"${SLX_DNBD3_IMAGE}\" (revision" \ + "\"$SLX_DNBD3_RID\") from one of \"$SLX_DNBD3_SERVERS\" to" \ + "\"$SLX_DNBD3_DEVICE\"." exit 1 fi # endregion diff --git a/dev-tools/exampleDracutModule/apply-package.sh b/dev-tools/exampleDracutModule/apply-package.sh index 218740ef..10964a5e 100755 --- a/dev-tools/exampleDracutModule/apply-package.sh +++ b/dev-tools/exampleDracutModule/apply-package.sh @@ -1,8 +1,37 @@ #!/usr/bin/env bash # -*- coding: utf-8 -*- -source /etc/openslx +source '/usr/lib/rebash/core.sh' +core.import exceptions +core.import logging +type emergency_shell >/dev/null 2>&1 || source /lib/dracut-lib.sh -echo -------------------------------------------------------------------------- -echo TEST -echo -------------------------------------------------------------------------- +exceptions.try +{ + logging.set_commands_level debug + logging.set_level debug + # NOTE: "getarg" raises an exception so deactivate exceptions for now. + exceptions.deactivate + slx_server="$(getarg slxsrv=)" + slx_server_base="$(getarg slxbase=)" + exceptions.activate + + logging.info 'Getting package.' + IFS_backup="$IFS" + IFS=',' + for host in ${slx_server}; do + logging.info "Trying host \"$host\"." + if wget --timeout 5 \ + "http://${host}/${slx_server_base}config.tar.gz" \ + --output-document '/tmp/config.tar.gz' + then + break + fi + done + IFS="$IFS_backup" +} +exceptions.catch +{ + logging.error "$exceptions_last_traceback" + emergency_shell "error in ${BASH_SOURCE[0]}" +} -- cgit v1.2.3-55-g7522 From 49a7371215d4e209018b944b1209ec782d8b2c29 Mon Sep 17 00:00:00 2001 From: torben Date: Thu, 24 Mar 2016 19:07:09 +0100 Subject: Improve tar gz module. --- dev-tools/exampleDracutModule/apply-package.sh | 4 +++- dev-tools/exampleDracutModule/module-setup.sh | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/dev-tools/exampleDracutModule/apply-package.sh b/dev-tools/exampleDracutModule/apply-package.sh index 10964a5e..67bcf665 100755 --- a/dev-tools/exampleDracutModule/apply-package.sh +++ b/dev-tools/exampleDracutModule/apply-package.sh @@ -17,13 +17,15 @@ exceptions.try exceptions.activate logging.info 'Getting package.' + mkdir --parents /tmp/slx_config IFS_backup="$IFS" IFS=',' for host in ${slx_server}; do logging.info "Trying host \"$host\"." if wget --timeout 5 \ "http://${host}/${slx_server_base}config.tar.gz" \ - --output-document '/tmp/config.tar.gz' + --output-document - | tar --extract --verbose --gzip --directory \ + /tmp/slx_config then break fi diff --git a/dev-tools/exampleDracutModule/module-setup.sh b/dev-tools/exampleDracutModule/module-setup.sh index bfe216e7..1604fd3f 100755 --- a/dev-tools/exampleDracutModule/module-setup.sh +++ b/dev-tools/exampleDracutModule/module-setup.sh @@ -38,4 +38,5 @@ install() { `install` ' inst_hook pre-pivot 00 "$moddir/apply-package.sh" + inst_multiple tar } -- cgit v1.2.3-55-g7522 From ee84e2165c2eb0d49c59a3d6faa75b195229438c Mon Sep 17 00:00:00 2001 From: torben Date: Thu, 24 Mar 2016 19:44:37 +0100 Subject: Fix example module. --- builder/dnbd3-rootfs/services/dnbd3-generator.sh | 30 ------------------------ dev-tools/exampleDracutModule/apply-package.sh | 3 +-- dev-tools/exampleDracutModule/example.service | 10 ++++++++ dev-tools/exampleDracutModule/module-setup.sh | 3 +++ 4 files changed, 14 insertions(+), 32 deletions(-) delete mode 100644 builder/dnbd3-rootfs/services/dnbd3-generator.sh create mode 100644 dev-tools/exampleDracutModule/example.service diff --git a/builder/dnbd3-rootfs/services/dnbd3-generator.sh b/builder/dnbd3-rootfs/services/dnbd3-generator.sh deleted file mode 100644 index bb9e7ad5..00000000 --- a/builder/dnbd3-rootfs/services/dnbd3-generator.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -GENERATOR_DIR="$2" -[ -z "$GENERATOR_DIR" ] && exit 1 -[ -d "$GENERATOR_DIR" ] || mkdir "$GENERATOR_DIR" -#GENERATOR_DIR="/run/systemd/generator/" -{ - echo "[Unit]" - echo "Description=root fs on dnbd3 (distributed network block device)" - echo "After=dracut-initqueue.service network.target" - echo "Before=dracut-mount.service" - echo "DefaultDependencies=no" - echo "IgnoreOnIsolate=true" - echo "#Conflicts=shutdown.target" - echo "#ConditionKernelCommandLine=!" - echo "#ConditionPathExists=/etc/multipath.conf" - echo "" - echo "[Service]" - echo "Type=oneshot" - echo "RemainAfterExit=true" - echo "KillMode=none" - echo "ExecStartPre=/sbin/fetch-config" - echo "ExecStart=/sbin/dnbd3root" - echo "#ExecReload=/sbin/multipathd reconfigure" - echo "#ExecStop=echo 'stopping dnbd3'" -} > "$GENERATOR_DIR"/dnbd3root.service -[ -d "$GENERATOR_DIR"/sysinit.target.wants ] || mkdir -p "$GENERATOR_DIR"/sysinit.target.wants -ln -s ../dnbd3root.service "$GENERATOR_DIR"/sysinit.target.wants/dnbd3root.service -[ -d "$GENERATOR_DIR"/remote-fs.target.wants ] || mkdir -p "$GENERATOR_DIR"/remote-fs.target.wants -ln -s ../dnbd3root.service "$GENERATOR_DIR"/remote-fs.target.wants/dnbd3root.service -exit 0 diff --git a/dev-tools/exampleDracutModule/apply-package.sh b/dev-tools/exampleDracutModule/apply-package.sh index 67bcf665..07d3c0a5 100755 --- a/dev-tools/exampleDracutModule/apply-package.sh +++ b/dev-tools/exampleDracutModule/apply-package.sh @@ -17,7 +17,6 @@ exceptions.try exceptions.activate logging.info 'Getting package.' - mkdir --parents /tmp/slx_config IFS_backup="$IFS" IFS=',' for host in ${slx_server}; do @@ -25,7 +24,7 @@ exceptions.try if wget --timeout 5 \ "http://${host}/${slx_server_base}config.tar.gz" \ --output-document - | tar --extract --verbose --gzip --directory \ - /tmp/slx_config + "$NEWROOT" then break fi diff --git a/dev-tools/exampleDracutModule/example.service b/dev-tools/exampleDracutModule/example.service new file mode 100644 index 00000000..83310c1d --- /dev/null +++ b/dev-tools/exampleDracutModule/example.service @@ -0,0 +1,10 @@ +[Unit] +Description=Simple example service +After=dracut-pre-mount.service network.target +DefaultDependencies=no + +[Service] +Type=oneshot +RemainAfterExit=true +KillMode=none +ExecStart=/usr/bin/bash -c '/usr/bin/echo test >/tmp/test-output.txt' diff --git a/dev-tools/exampleDracutModule/module-setup.sh b/dev-tools/exampleDracutModule/module-setup.sh index 1604fd3f..af9bda6c 100755 --- a/dev-tools/exampleDracutModule/module-setup.sh +++ b/dev-tools/exampleDracutModule/module-setup.sh @@ -14,6 +14,9 @@ check() { `check` ' + + # Here we could build our package file. + # Tell dracut that this module should only be included if it is required # explicitly. return 255 -- cgit v1.2.3-55-g7522 From 5ee9c7521aa87368891f0499a392e241bab226a1 Mon Sep 17 00:00:00 2001 From: torben Date: Thu, 24 Mar 2016 20:05:41 +0100 Subject: Update dracut version. Fix ip append. --- builder/build-initramfs.sh | 2 +- builder/dnbd3-rootfs/module-setup.sh | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/builder/build-initramfs.sh b/builder/build-initramfs.sh index b3d43015..73979240 100755 --- a/builder/build-initramfs.sh +++ b/builder/build-initramfs.sh @@ -60,7 +60,7 @@ core.import change_root # region properties # shellcheck disable=SC2034 build_initramfs__doc_test_setup__='exceptions.activate' -dracut_resource_url='https://www.kernel.org/pub/linux/utils/boot/dracut/dracut-043.tar.gz' +dracut_resource_url='https://www.kernel.org/pub/linux/utils/boot/dracut/dracut-044.tar.gz' file_path='/boot/initramfs.img' dracut_parameter=(--force --no-hostonly) verbose='no' diff --git a/builder/dnbd3-rootfs/module-setup.sh b/builder/dnbd3-rootfs/module-setup.sh index fecadb2e..baf2b421 100755 --- a/builder/dnbd3-rootfs/module-setup.sh +++ b/builder/dnbd3-rootfs/module-setup.sh @@ -194,8 +194,10 @@ install() { # endregion # region hooks inst_hook cmdline 00 "$moddir/hooks/enable-sysrq.sh" - inst_hook cmdline 10 \ - "$moddir/hooks/prepare-kernel-command-line-parameter.sh" + # NOTE: Can be used to support old style ip append syntax and have an + # exclusive interface name. + #inst_hook cmdline 10 \ + # "$moddir/hooks/prepare-kernel-command-line-parameter.sh" inst_hook cmdline 90 "$moddir/hooks/set-dracut-environment-variables.sh" inst_hook pre-udev 00 "$moddir/hooks/load-custom-kernel-modules.sh" # Get the openslx config from the servers configured in the kernel command -- cgit v1.2.3-55-g7522 From a0ee9010a3ca37d40b546be7e8271f96f7baa130 Mon Sep 17 00:00:00 2001 From: torben Date: Tue, 29 Mar 2016 17:40:34 +0200 Subject: Fix. --- dev-tools/exampleDracutModule/example.service | 10 ---------- dev-tools/exampleDracutModule/module-setup.sh | 2 +- .../source/usr/lib/systemd/system/example.service | 10 ++++++++++ .../lib/systemd/system/multi-user.target.wants/example.service | 10 ++++++++++ 4 files changed, 21 insertions(+), 11 deletions(-) delete mode 100644 dev-tools/exampleDracutModule/example.service create mode 100644 dev-tools/exampleDracutModule/source/usr/lib/systemd/system/example.service create mode 100644 dev-tools/exampleDracutModule/source/usr/lib/systemd/system/multi-user.target.wants/example.service diff --git a/dev-tools/exampleDracutModule/example.service b/dev-tools/exampleDracutModule/example.service deleted file mode 100644 index 83310c1d..00000000 --- a/dev-tools/exampleDracutModule/example.service +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Simple example service -After=dracut-pre-mount.service network.target -DefaultDependencies=no - -[Service] -Type=oneshot -RemainAfterExit=true -KillMode=none -ExecStart=/usr/bin/bash -c '/usr/bin/echo test >/tmp/test-output.txt' diff --git a/dev-tools/exampleDracutModule/module-setup.sh b/dev-tools/exampleDracutModule/module-setup.sh index af9bda6c..8a7d0e07 100755 --- a/dev-tools/exampleDracutModule/module-setup.sh +++ b/dev-tools/exampleDracutModule/module-setup.sh @@ -41,5 +41,5 @@ install() { `install` ' inst_hook pre-pivot 00 "$moddir/apply-package.sh" - inst_multiple tar + inst_multiple tar wget } diff --git a/dev-tools/exampleDracutModule/source/usr/lib/systemd/system/example.service b/dev-tools/exampleDracutModule/source/usr/lib/systemd/system/example.service new file mode 100644 index 00000000..83310c1d --- /dev/null +++ b/dev-tools/exampleDracutModule/source/usr/lib/systemd/system/example.service @@ -0,0 +1,10 @@ +[Unit] +Description=Simple example service +After=dracut-pre-mount.service network.target +DefaultDependencies=no + +[Service] +Type=oneshot +RemainAfterExit=true +KillMode=none +ExecStart=/usr/bin/bash -c '/usr/bin/echo test >/tmp/test-output.txt' diff --git a/dev-tools/exampleDracutModule/source/usr/lib/systemd/system/multi-user.target.wants/example.service b/dev-tools/exampleDracutModule/source/usr/lib/systemd/system/multi-user.target.wants/example.service new file mode 100644 index 00000000..83310c1d --- /dev/null +++ b/dev-tools/exampleDracutModule/source/usr/lib/systemd/system/multi-user.target.wants/example.service @@ -0,0 +1,10 @@ +[Unit] +Description=Simple example service +After=dracut-pre-mount.service network.target +DefaultDependencies=no + +[Service] +Type=oneshot +RemainAfterExit=true +KillMode=none +ExecStart=/usr/bin/bash -c '/usr/bin/echo test >/tmp/test-output.txt' -- cgit v1.2.3-55-g7522