#!/bin/bash -l set -x set -eE -o pipefail trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR if [[ ! $1 ]]; then echo "error: expect a hostname in \$1 " exit 1 fi host=$1 scp -o StrictHostKeyChecking=false -o UserKnownHostsFile=/dev/null \ /p/c/machine_specific/$host/filesystem/etc/ssh/* root@$host:/etc/ssh if [[ -e /var/cache/pacman/pkg ]]; then darkhttpd /var/cache/pacman/pkg & mirror=http://$HOSTNAME:8080 fi faid=/a/bin/fai rsync -rlpthvi --relative /a/bin/fai/ root@$host:/ rsync /a/bin/fai/ root@$host:/a/bin/fai/ sudo scp -r /a/bin/devbyid /q/root/luks /q/root/shadow root@$host: # creating shadow file string: # on debian, you can use mkpasswd -m sha-512 to generate a pass. # arch doesn't have this program. instead, you can do passwd, # and extract it from the shadow file. ssh root@$host bash -x /a/bin/fai/arch-init $host $mirror #ssh root@$host reboot now || [[ $? == 255 ]] # next up is: # ssh $host /a/bin/distro-begin if [[ -e /var/cache/pacman/pkg ]]; then killall darkhttpd fi # todo: this doesn't work. figure out why. #kill $!