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.
21 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
24 echo "error: expect a hostname in \$1 "
30 scp
-o StrictHostKeyChecking
=false
-o UserKnownHostsFile
=/dev
/null \
31 /p
/c
/machine_specific
/$host/filesystem
/etc
/ssh
/* root@
$host:/etc
/ssh
33 if [[ -e /var
/cache
/pacman
/pkg
]]; then
34 darkhttpd
/var
/cache
/pacman
/pkg
&
35 mirror
=http
://$HOSTNAME:8080
39 rsync
-rlpthvi --relative /a
/bin
/fai
/ root@
$host:/
40 rsync
/a
/bin
/fai
/ root@
$host:/a
/bin
/fai
/
41 sudo scp
-r /a
/bin
/devbyid
/q
/root
/luks
/q
/root
/shadow root@
$host:
42 # creating shadow file string:
43 # on debian, you can use mkpasswd -m sha-512 to generate a pass.
44 # arch doesn't have this program. instead, you can do passwd,
45 # and extract it from the shadow file.
46 ssh root@
$host bash
-x /a
/bin
/fai
/arch-init
$host $mirror
48 ssh root@
$host reboot ||
[[ $?
== 255 ]]
50 # next up is sync data, then
51 # ssh $host /a/bin/distro-begin
53 if [[ -e /var
/cache
/pacman
/pkg
]]; then
56 # todo: this doesn't work. figure out why.