various improvements
authorIan Kelling <ian@iankelling.org>
Sun, 8 May 2016 22:26:55 +0000 (15:26 -0700)
committerIan Kelling <ian@iankelling.org>
Mon, 6 Feb 2017 06:21:41 +0000 (22:21 -0800)
arch-init
arch-init-chroot
fai/config/class/50-host-classes
faiserver-setup
pxe-server
wrt-setup

index a9e5d68c49c38e6f3e5771bd2bdfbb671101712e..af649b2676640c481a7aed76836194f41842ae52 100755 (executable)
--- a/arch-init
+++ b/arch-init
@@ -97,6 +97,8 @@ cp /root/encrypt /mnt/usr/lib/initcpio/hooks
 
 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
index d2e0f976716b83e93adb7bfce95773836a1d6150..634991c471a7bb1f939423c4fa025844b7cebadf 100755 (executable)
@@ -2,12 +2,10 @@
 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
index 03bac3e91653a1f663c0851299773adb61445c48..4309ab4b6fe0f891b94250bbf14d72b7f56fd4f6 100755 (executable)
@@ -16,7 +16,7 @@ case $HOSTNAME in
     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)
index 1bfbacb547e18f00fc2dd50da79f1f5615a029d8..3b9ab80f14fef060f1dc20ac94bf48698e127922 100755 (executable)
@@ -1,6 +1,9 @@
 #!/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
@@ -63,6 +66,7 @@ std_arg="-u nfs://faiserver/srv/fai/config"
 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$' | \
index ec299e47b734a14cf56752247f439700305a299c..4fcf40c134cd472d3ba50aaa26687298846c5da1 100755 (executable)
 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"
index 1531c4f32f17c8c66fb45fe38f07d82addced723..777eafdfbe092196e7fa784a0fd3d6be5322e8e8 100755 (executable)
--- a/wrt-setup
+++ b/wrt-setup
@@ -225,8 +225,8 @@ EOF
 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
@@ -281,21 +281,21 @@ server=75.75.75.75
 # 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