2 # Copyright (C) 2016 Ian Kelling
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 Usage: ${0##*/} HOSTNAME
28 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
31 echo "error: expect a hostname in \$1 "
37 scp
-o StrictHostKeyChecking
=false
-o UserKnownHostsFile
=/dev
/null \
38 /p
/c
/machine_specific
/$host/filesystem
/etc
/ssh
/* root@
$host:/etc
/ssh
40 if [[ -e /var
/cache
/pacman
/pkg
]]; then
41 darkhttpd
/var
/cache
/pacman
/pkg
&
42 mirror
=http
://$HOSTNAME:8080
46 rsync
-rlpthvi --relative /a
/bin
/fai
/ root@
$host:/
47 rsync
/a
/bin
/fai
/ root@
$host:/a
/bin
/fai
/
48 sudo scp
-r /a
/bin
/fai
/devbyid
/q
/root
/luks
/q
/root
/shadow root@
$host:
49 # creating shadow file string:
50 # on debian, you can use mkpasswd -m sha-512 to generate a pass.
51 # arch doesn't have this program. instead, you can do passwd,
52 # and extract it from the shadow file.
53 ssh root@
$host bash
-x /a
/bin
/fai
/arch-init
$host $mirror
55 ssh root@
$host reboot ||
[[ $?
== 255 ]]
57 # next up is sync data, then
58 # ssh $host /a/bin/distro-begin
60 if [[ -e /var
/cache
/pacman
/pkg
]]; then
63 # todo: this doesn't work. figure out why.