nixos/scripts/remote_switch.sh

47 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
cd /home/andreas/.nixos
hosts=($(echo `nix eval .#nixosConfigurations --apply 'pkgs: builtins.concatStringsSep " " (builtins.attrNames pkgs)'` | xargs ))
skip=(
"desktop-vm"
"gwyn"
"loki-test"
"pihole"
"staubfinger"
)
rsa_key="$HOME/.nixos/secrets/ssh_keys/ansible/ansible.key"
export NIX_SSHOPTS="-t -i $rsa_key"
reboot=0
while getopts ":r" option; do
case $option in
r)
reboot=1
esac
done
for host in "${hosts[@]}"
do
# Check if the host is in the skip list
if [[ " ${skip[*]} " =~ " ${host} " ]];then
continue
fi
fqdn="$host.2li.local"
echo $fqdn
nixos-rebuild switch -j auto --use-remote-sudo --build-host localhost --target-host $fqdn --flake ".#$host" &&
if [ $reboot -eq 1 ]; then
ssh -i $rsa_key $fqdn 'sudo reboot'
fi
echo
echo
done
pihole="pihole.2li.local"
echo $pihole
nixos-rebuild switch -j auto --use-remote-sudo --build-host localhost --target-host $pihole --flake ".#pihole" &&
if [ $reboot -eq 1 ]; then
ssh -i $rsa_key $pihole 'sudo reboot'
fi