cp -r .ssh /mnt/root
cp -r /root/distro-install-common /mnt/root
+mkdir -p /mnt/etc/ssh
+cp /etc/ssh/host_* /mnt/etc/ssh
cp /root/arch-init-chroot /mnt/root
# for manual commands, arch-chroot /mnt bash
set -eE -o pipefail
trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-for x in /etc/*.pacorig; do
- # This started breaking immediately when I stoped doing genfstab.
- # It's probably not needed anymore
- [[ -e $x ]] || break
- mv $x ${x%.pacorig}
-done
+# note, when I did genfstab, i
+# neeeded to to do for x in mv /etc/*.pacorig; do mv $x ${x%.pacorig}; done
+
+pacman -Syu
echo $hostname > /etc/hostname
[[ -L /etc/localtime ]] || ln -s /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
frodo)
echo "FAIBASE DEBIAN DESKTOP STABLE PARTITION_PROMPT" ;;
treetowl)
- echo "FAIBASE DEBIAN DESKTOP STABLE REPARTITION" ;;
+ echo "FAIBASE DEBIAN DESKTOP STABLE PARTITION_PROMPT" ;;
# faiserver)
# echo "FAIBASE DEBIAN DEMO FAISERVER" ;;
# xfcehost)
#!/bin/bash
-# initial setup of a fai server on debian
+# Initial setup of a fai server on debian. works on localhost.
+# Set's the current ip as the tftp server. I vaguely remember
+# that using a hostname does not work
+# Requires changing dns to point faiserver and running fai-redep
set -eE -o pipefail
trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
fai-chboot -Iv $std_arg default # reset so we are idempotent
kernel=$(fai-chboot -L '^default$' | awk '{print $3}')
type -t host &>/dev/null || apt-get -y install dnsutils
+# resolve host using gateway address
my_ip=$(host faiserver $(route -n | sed -rn 's/^(0\.){3}0\s+(\S+).*/\2/p') | \
sed -rn 's/^\S+ has address //p')
k_args=$(fai-chboot -L '^default$' | \
set -eE -o pipefail
trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
-if [[ ! $1 ]]; then
+
+usage() {
+ cat <<EOF
+Usage: ${0##*/} [OPTIONS] TYPE [HOST]
+One line description
+
+TYPE is one of arch, plain, fai, or : for no pxe server.
+HOST makes the pxe server only for that specific host
+
+-h|--help Print help and exit
+-- Subsequent arguments are never treated as options
+EOF
+ exit $1
+}
+
+##### begin command line parsing ########
+
+
+args=()
+while [[ $1 ]]; do
+ case $1 in
+ --) shift; break ;;
+ -h|--help) usage ;;
+ *) args+=("$1"); shift ;;
+ esac
+done
+args+=("$@")
+
+
+read type host <<<"${args[@]}"
+
+if [[ ! $type ]]; then
echo "$0: error: exptected 1 argument of type"
+ usage 1
fi
-action=$1
+
+if [[ $host ]]; then
+ host_tag="tag:$host,"
+fi
+
+##### end command line parsing ########
arch() {
- plain-tftp
- cat <<'EOF'
+ plain
+ cat <<EOF
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
-dhcp-boot=/arch/boot/syslinux/lpxelinux.0
+dhcp-boot=${host_tag}/arch/boot/syslinux/lpxelinux.0
EOF
}
-plain-tftp() {
+plain() {
# if arch was used before, this additionally needs
# the tftp link in /mnt/usb to be changed.
- cat <<'EOF'
+ cat <<EOF
enable-tftp
tftp-root=/mnt/usb/tftpboot
-dhcp-boot=pxelinux.0
+dhcp-boot=${host_tag}pxelinux.0
EOF
}
fai() {
- cat <<'EOF'
-dhcp-boot=fai/pxelinux.0,faiserver.lan,faiserver.lan
+ cat <<EOF
+$set_host_tag
+dhcp-boot=${host_tag}fai/pxelinux.0,faiserver.lan,faiserver.lan
EOF
}
-$action | ssh wrt "cedit pxe-server /etc/dnsmasq.conf || /etc/init.d/dnsmasq restart
-if [[ $action == arch ]]; then arch-pxe-mount; fi"
+$type | ssh wrt "cedit pxe-server /etc/dnsmasq.conf || /etc/init.d/dnsmasq restart
+if [[ $type == arch ]]; then arch-pxe-mount; fi"
dnsmasq_restart=false
cedit /etc/hosts <<EOF || dnsmasq_restart=true
192.168.1.1 wrt
-192.168.1.2 treetowl
-192.168.1.3 frodo faiserver
+192.168.1.2 treetowl faiserver
+192.168.1.3 frodo
192.168.1.4 htpc
192.168.1.5 x2
192.168.1.6 testvm
# sudo dhclient -r; sudo dhclient <interface-name>
# default dhcp range is 100-150
-dhcp-host=00:15:17:d2:1a:1c,192.168.1.2,treetowl
-dhcp-host=00:26:18:97:bb:16,192.168.1.3,frodo
-dhcp-host=10:78:d2:da:29:22,192.168.1.4,htpc
-dhcp-host=00:1f:16:16:39:24,192.168.1.5,x2
+dhcp-host=f4:6d:04:02:ed:66,set:treetowl,192.168.1.2,treetowl
+dhcp-host=00:26:18:97:bb:16,set:frodo,192.168.1.3,frodo
+dhcp-host=10:78:d2:da:29:22,set:htpc,192.168.1.4,htpc
+dhcp-host=00:1f:16:16:39:24,set:x2,192.168.1.5,x2
# this is so fai can have an explicit name to use for testing,
# or else any random machine which did a pxe boot would get
# reformatted. The mac is from doing a virt-install, cancelling it,
# and copying the generated mac, so it should be randomish.
-dhcp-host=52:54:00:9c:ef:ad,192.168.1.6,demohost
-dhcp-host=52:54:00:56:09:f9,192.168.1.7,faiserver
-dhcp-host=80:fa:5b:1c:6e:cf,192.168.1.8,tp
+dhcp-host=52:54:00:9c:ef:ad,set:demohost,192.168.1.6,demohost
+dhcp-host=52:54:00:56:09:f9,set:faiserver,192.168.1.7,faiserver
+dhcp-host=80:fa:5b:1c:6e:cf,set:tp,192.168.1.8,tp
# this is the ip it picks by default if dhcp fails,
# so might as well use it.
# hostname is the name it uses according to telnet
-dhcp-host=b4:75:0e:94:29:ca,192.168.1.251,switch9429ca
+dhcp-host=b4:75:0e:94:29:ca,set:switch9429ca,192.168.1.251,switch9429ca
# template