ssh key fix, consistent help args
authorIan Kelling <ian@iankelling.org>
Sat, 11 Feb 2017 21:20:27 +0000 (13:20 -0800)
committerIan Kelling <ian@iankelling.org>
Sun, 12 Feb 2017 00:00:56 +0000 (16:00 -0800)
14 files changed:
README
arch-init-remote
eboot
fai-kexec
fai-revm
fai/config/distro-install-common/end
fai/config/scripts/GRUB_PC/11-ian
faiserver-revm
faiserver-setup
faiserver-uninstall
install-chboot
live-kexec
myfai-chboot
wrt-setup-remote

diff --git a/README b/README
index fa28fa97944cc5e1d8bbff0b7848920e4eee865a..af4c0ba2ec401a8cf26eae8dc18bdf8bba07aa34 100644 (file)
--- a/README
+++ b/README
@@ -61,7 +61,7 @@ wrt-setup-remote  # setup my router in general: dhcp, dns, etc.
 
 # Scripts to do a distro install
 
-arch-init-remote # install arch (after it's been booted into it's setup env)
+arch-init-remote # install arch after it's been booted into it's setup env
 dsfull # install & post-install a new fai distro
 fai-kexec # kexec to fai tftp server that pxe would normally point to
 arch-revm # test arch install on a fresh vm
@@ -74,7 +74,7 @@ live-kexec # fai kexec from upstream live cds, e.g. curl live-kexec|bash
 chboot # Set grub to boot into a different distro (installed earlier)
 install-chboot # reinstall chboot to /boot subvols, for chboot updates.
 eboot # reboot without automatic disk decryption
-fai-wrapper # Evaluate and use fai classes outside of fai.
+fai-wrapper # use fai classes outside of fai. sourced, not called.
 fresize # resize swap or boot partitions in a host
 
 
index 6e460a5f0b15cc26f383b3c36bca8ebadd4d0ef3..76e2cf236b074f0b11685c30015039aff8adb922 100755 (executable)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
+set -x
+
+set -eE -o pipefail
+trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+
 usage() {
     cat <<EOF
-Usage: ${0##*/} HOSTNAME
+Usage: ${0##*/} [-h|--help] HOSTNAME
+install arch after it's been booted into it's setup env
 EOF
     exit $1
 }
-
-set -x
-
-set -eE -o pipefail
-trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+case $1 in
+    -h|--help) usage ;;
+esac
 
 if [[ ! $1 ]]; then
     echo "error: expect a hostname in \$1 "
diff --git a/eboot b/eboot
index cb487cb1772f014ae201ebda7c428826a97a690a..6d5ce5eecf37ffa0a405fe6998854661519f77c6 100755 (executable)
--- a/eboot
+++ b/eboot
@@ -1,6 +1,32 @@
 #!/bin/bash
+# Copyright (C) 2017 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 <<EOF
+Usage: ${0##*/} [-h|--help]
+reboot and keep disks encrypted
+EOF
+    exit $1
+}
+case $1 in
+    -h|--help) usage ;;
+esac
 
-# reboot and keep disks encrypted.
 touch /tmp/keyscript-off
 [[ $EUID == 0 ]] || s=sudo
 $s reboot "$@"
index b674d7eff2d2090675417ceb914615837e97df46..a49abe1cb743f36423fa1a70267171c772e61d4a 100755 (executable)
--- a/fai-kexec
+++ b/fai-kexec
@@ -30,7 +30,6 @@ including the pxe dhcp.
 EOF
     exit $1
 }
-
 case $1 in
     -h|--help) usage ;;
 esac
index 57e5586314f81831e695561f47b69fa2be14d045..8d782c0f857f6fbc48bf0231d2046de632e9e660 100755 (executable)
--- a/fai-revm
+++ b/fai-revm
@@ -43,7 +43,6 @@ EOF
     exit $1
 }
 
-
 new_disk=false
 temp=$(getopt -l help hnr "$@") || usage 1
 eval set -- "$temp"
index 629e47ad5ee9c7e727cba56da2611eeab58a5dab..90082de579047090c387b05f944cb5f710e9cb80 100755 (executable)
@@ -8,6 +8,19 @@ if [[ $EUID != 0 ]]; then
     exit 1
 fi
 
+# ssh host keys
+# note, $BASH_SOURCE is not defined here under fai.
+src=$(dirname "$0")/p/c/machine_specific/$HOSTNAME/filesystem/etc/ssh
+dst=$target/etc/ssh
+if [[ -e $src && -e $dst ]]; then
+    # outside of fai context, we skip this
+    cp -rT $src $dst
+fi
+
+if ifclass VOL_STABLE_BOOTSTRAP; then
+    exit 0
+fi
+
 TPW=/q/root/shadow/traci-simple
 if ifclass tp; then
     ROOTPW="$TPW"
@@ -66,16 +79,6 @@ if [[ ! -e $f ]] || ! grep -xF "$line" $f; then
     echo "$line" >> $f
 fi
 
-# ssh host keys
-# note, $BASH_SOURCE is not defined here under fai.
-src=$(dirname "$0")/p/c/machine_specific/$HOSTNAME/filesystem/etc/ssh
-dst=$target/etc/ssh
-if [[ -e $src && -e $dst ]]; then
-    # outside of fai context, we skip this
-    cp -rT $src $dst
-fi
-
-
 dir=/p/c/machine_specific/$HOSTNAME/.unison
 $ROOTCMD mkdir -p $dir
 if ! $ROOTCMD test -L /root/.unison; then
index 8cd841f875cfc76af9e1393d19aa63cd610f29f9..8df5b13147a5412e00ce03b7d19c35da2883e1f7 100755 (executable)
@@ -40,17 +40,16 @@ if [[ ! -e $dst && -e $src ]]; then
   mount -o bind $src $dst
 fi
 
+$FAI/distro-install-common/end
 if ifclass VOL_STABLE_BOOTSTRAP; then
   fcopy -ri /etc/systemd/system
   chroot $FAI_ROOT bash <<'EOFOUTER'
 systemctl enable fai_check.service
 EOFOUTER
-  exit 0
+  exit 0 # avoid unnecessary stuff in bootstrap vol
 fi
 
 
-$FAI/distro-install-common/end
-
 # these get copied in an earlier stage by fai, but leaving it here since
 # I run this as a single post-fai script to update things that have changed.
 fcopy -riB /etc/apt
index a0a0bb8b421ecf11ea4b666ec683bff61c386944..6d598a6f3f084b1771e3f6fb3fa7ffa1cb7d9882 100755 (executable)
@@ -1,9 +1,4 @@
 #!/bin/bash -l
-# Usage: faiserver-revm
-# Create a vm which is a fai server.
-#
-# This assumes you've set the dhcp server to make
-# 52:54:00:56:09:f9 be faiserver.
 set -x
 
 set -eE -o pipefail
@@ -12,6 +7,20 @@ trap 'cleanup; echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
 x="$(readlink -f "$BASH_SOURCE")"; cd ${x%/*}
 
+usage() {
+    cat <<EOF
+usage: ${0##*/} [-h|--help]
+Create a vm which is a fai server.
+
+This assumes you've set the dhcp server to make 52:54:00:56:09:f9 be
+faiserver. That mac is a randomly generated one in the libvirt range.
+EOF
+    exit $1
+}
+case $1 in
+    -h|--help) usage ;;
+esac
+
 cleanup() { pxe-server :; }
 ./debian-pxe-preseed -i 192.168.1.1 -u ian -g vda
 
index 3db726547136c4fba7d636c1a8097c72c18c5a1c..fd2ab0073cec3db458076edc57278c75b0c3aab5 100755 (executable)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-# Usage: faiserver-setup
-#
-# 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.
-# Separate from running this, faiserver needs to be setup in dns
-# to point to whatever host this is run on.
-
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
 [[ $EUID == 0 ]] || exec sudo "${BASH_SOURCE}" "$@"
 
+usage() {
+    cat <<EOF
+usage: ${0##*/} [-h|--help]
+install fai-server on the current machine
+
+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.
+Separate from running this, faiserver needs to be setup in dns
+to point to whatever host this is run on.
+EOF
+    exit $1
+}
+case $1 in
+    -h|--help) usage ;;
+esac
+
+
 e() { echo "$@"; "$@"; }
 
 # When stretch becomes stable, change this to stretch.
index dee24093cb6c8bda041795bb889f392fd1586ff4..71a4ea08d90cb61fc67bc7f1000c5d3518b07c16 100755 (executable)
@@ -20,5 +20,17 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
 [[ $EUID == 0 ]] || exec sudo "${BASH_SOURCE}" "$@"
 
+usage() {
+    cat <<EOF
+usage: ${0##*/} [-h|--help]
+uninstall fai-server
+EOF
+    exit $1
+}
+case $1 in
+    -h|--help) usage ;;
+esac
 
-apt-get -y purge $(< /etc/fai/fai-manually-installed-packages)
+
+apt-get -y remove --purge --auto-remove fai-doc nfs-kernel-server \
+        tftpd-hpa tar reprepro squashfs-tools binutils fai-server
index d066101642454420d7664649dbc1f9fc88d61104..69f46dfb99848bbbdd6641a98ae15108d0df165a 100755 (executable)
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
-# usage install-chboot: isntalls chboot to all /boot subvols,
-# in case there is an issue booting and it is needed.
-# Run this when chboot changes.
 
 x=$(readlink -f "$BASH_SOURCE"); cd ${x%/*}
 
+usage() {
+    cat <<EOF
+Usage: ${0##*/} [-h|--help]
+reinstall chboot to /boot subvols, for chboot updates.
+
+We install to /boot in case there is an issue booting and only the /boot
+vol is readily available. For the bootstrap subvol, this is the normal
+case.
+EOF
+    exit $1
+}
+case $1 in
+    -h|--help) usage ;;
+esac
+
+
 e() { echo "$@"; "$@"; }
 
 boot_dev=$(mount | sed -rn "s#^(\S+) on /boot .*#\1#p")
index 651dad7bcf1424f00ccbfd42a4bfd7a25b07c427..aef734282e63b84477110220a5a13418147135f5 100644 (file)
@@ -1,15 +1,41 @@
 #!/bin/bash
-#
-# fai kexec from upstream live cds, i.e. curl|bash
-# You can copy this to a http server, then wget -O- url|sudo bash
-# curl is sometimes not preinstalled on a live cd.
-#
-# This has been tested on trisquel belanos and ubuntu xenial.
-#
-# If the screen just sits in a weird color inverted, corrupted looking state,
-# it's probably nothing wrong with the computer, but a problem
-# with the fai server. If you can do this from a virtual terminal,
-# it will print out more info (I know from running it on a vm).
+# 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 <<EOF
+Usage: ${0##*/} [-h|--help]
+fai kexec from upstream live cds, i.e. curl|bash
+
+You can copy this to a http server, then wget -O- url|sudo bash
+curl is sometimes not preinstalled on a live cd.
+
+This has been tested on trisquel belanos and ubuntu xenial.
+
+If the screen just sits in a weird color inverted, corrupted looking state,
+it's probably nothing wrong with the computer, but a problem
+with the fai server. If you can do this from a virtual terminal,
+it will print out more info (I know from running it on a vm).
+EOF
+    exit $1
+}
+case $1 in
+    -h|--help) usage ;;
+esac
+
 
 set -ex
 if grep -q ID=ubuntu /etc/os-release; then
index 310969e2708f42015284bc8945d780f405506856..11c3eae30cb7b22db5cd9b67826f773e4a72d5c0 100755 (executable)
@@ -15,8 +15,6 @@ hosts.
 EOF
     exit $1
 }
-
-
 case $1 in
     -h|--help) usage ;;
 esac
index d67035b797bec5979cc256493e4496477885863f..3dadb148b78a17f21b0c9722196b3633311f1221 100755 (executable)
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
 
-# Usage: wrt-setup-remote
-
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 
 x="$(readlink -f "$BASH_SOURCE")"; cd ${x%/*}
 
+usage() {
+    cat <<EOF
+usage: ${0##*/} [-h|--help]
+setup my router in general: dhcp, dns, etc.
+EOF
+    exit $1
+}
+case $1 in
+    -h|--help) usage ;;
+esac
+
+
 h=root@192.168.1.1
 scp /a/bin/fai/wrt-setup /a/bin/cedit/cedit $h:/usr/bin
 ssh $h <<EOF