#!/bin/bash -l # Copyright (C) 2016 Ian Kelling # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. usage() { cat <&2' ERR if [[ ! $1 ]]; then echo "error: expect a hostname in \$1 " usage 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/fai/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 || [[ $? == 255 ]] # next up is sync data, then # 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 $!