Ryan Lahfa
ed285ba79d
Some checks failed
Check meta / check_meta (pull_request) Failing after 17s
lint / check (push) Successful in 31s
build configuration / build_compute01 (pull_request) Failing after 52s
build configuration / build_storage01 (pull_request) Failing after 52s
build configuration / build_vault01 (pull_request) Failing after 53s
Check meta / check_dns (pull_request) Failing after 1m6s
build configuration / build_web01 (pull_request) Failing after 53s
build configuration / build_web02 (pull_request) Failing after 41s
build configuration / build_rescue01 (pull_request) Failing after 30s
build configuration / push_to_cache (pull_request) Has been skipped
Now that we possess the levitation technology, it's necessary to support root prefixes for rebuild otherwise we will just overwrite our RAM disk configuration. Also, to avoid any issue, let's fail hard and avoid rebooting while being in levitation for nothing. Signed-off-by: Ryan Lahfa <ryan@dgnum.eu>
45 lines
949 B
Bash
Executable file
45 lines
949 B
Bash
Executable file
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
ssh_command=${SSH_COMMAND-ssh}
|
|
root_prefix=${ROOT_PREFIX-/}
|
|
|
|
reboot="reboot"
|
|
|
|
case "$1" in
|
|
"--no-reboot")
|
|
unset reboot
|
|
shift
|
|
;;
|
|
"--fast")
|
|
reboot="soft"
|
|
shift
|
|
;;
|
|
esac
|
|
|
|
target_host=$1
|
|
shift
|
|
|
|
if [ -z "$target_host" ] ; then
|
|
echo Usage: liminix-rebuild \[--no-reboot\] target-host params
|
|
exit 1
|
|
fi
|
|
|
|
if toplevel="$(nom-build $(colmena eval -E "{ nodes, ... }: nodes.$@.config.system.outputs.systemConfiguration" --instantiate))"; then
|
|
echo systemConfiguration $toplevel aimed at $root_prefix
|
|
sleep 3
|
|
min-copy-closure --root "$root_prefix" $target_host $toplevel
|
|
$ssh_command $target_host "$root_prefix/$toplevel/bin/install" "$root_prefix"
|
|
case "$reboot" in
|
|
reboot)
|
|
$ssh_command $target_host "sync; source /etc/profile; reboot"
|
|
;;
|
|
soft)
|
|
$ssh_command $target_host $toplevel/bin/restart-services
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
else
|
|
echo Rebuild failed
|
|
fi
|