From 4abbc67ed68213ec94fcf5970d3e34661967a87c Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Tue, 26 Apr 2022 22:28:15 -0400 Subject: [PATCH] beginning of fsf config --- fai/config/class/50-host-classes | 9 +- fai/config/scripts/FSF/11-iank | 255 +++++++++++++++++++ fai/config/scripts/GRUB_EFI/11-iank | 1 - fai/config/scripts/{GRUB_PC => IANK}/11-iank | 2 +- 4 files changed, 263 insertions(+), 4 deletions(-) create mode 100755 fai/config/scripts/FSF/11-iank delete mode 120000 fai/config/scripts/GRUB_EFI/11-iank rename fai/config/scripts/{GRUB_PC => IANK}/11-iank (99%) diff --git a/fai/config/class/50-host-classes b/fai/config/class/50-host-classes index 84efa36..7de2287 100755 --- a/fai/config/class/50-host-classes +++ b/fai/config/class/50-host-classes @@ -79,9 +79,12 @@ echo FAIBASE STANDARD DEBIAN # ROTATIONAL: in a system with ssd and hdd, install to the hdd # instead of the default ssd. # -# RAID0: Use raid 0 even if there are >= 4 disks with boot partititions. +# RAID0: Use raid 0 even if there are >= 4 disks with boot partitions. # # LINODE: For running a vm on linode, especially one created with fai-cd. +# +# IANK / FSF: general setup of my machine vs FSF machines +# NABIA_EXTRA: extra repos for NABIA from other distros if [[ -e /a/bin/fai/fai-wrapper ]]; then @@ -128,6 +131,8 @@ exit 0 # It's a noop until we replace _ with host names. #!/bin/bash + +echo IANK if [[ ! -e /a/bin/fai/fai-wrapper || $FAI_ACTION == dirinstall ]]; then case $HOSTNAME in # bullseye based minimal recovery / bootstraping os: @@ -137,7 +142,7 @@ if [[ ! -e /a/bin/fai/fai-wrapper || $FAI_ACTION == dirinstall ]]; then # etiona _) echo UBUNTU ETIONA64 VOL_ETIONA ETIONA ;; # nabia - _) echo UBUNTU NABIA64 VOL_NABIA NABIA ;; + _) echo UBUNTU NABIA64 VOL_NABIA NABIA NABIA_EXTRA ;; # stretch _) echo STRETCH64 VOL_STRETCH STRETCH_NONFREE ;; # buster diff --git a/fai/config/scripts/FSF/11-iank b/fai/config/scripts/FSF/11-iank new file mode 100755 index 0000000..7e94a40 --- /dev/null +++ b/fai/config/scripts/FSF/11-iank @@ -0,0 +1,255 @@ +#!/bin/bash -x + +set -eE -o pipefail +trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR + +if [[ $EUID != 0 ]]; then + echo "$0: error: expected to be root." + exit 1 +fi + + +# -r = recursive +# -i = ignore non-matching class warnings, always exit 0 +# -B = no backup files +fcopy -riBM /boot + + + +chpw() { + # generating a hashed password: + # under debian, you can do + # mkpasswd -m sha-512 -s >/q/root/shadow/standard + # On arch, best seems to be copy your shadow file to a temp location, + # then passwd, get out the new pass, then copy the shadow file back. + + user=$1 + pwfile=$2 + if [[ $pwfile && -e $pwfile ]]; then + printf "$user:" | cat - "$pwfile" | $ROOTCMD chpasswd -e + else + echo "$0: warning: no pw set for $user" >&2 + fi +} + +chpw root $FAI/distro-install-common/shadow/community0p + + +#### misc configurations +chroot $FAI_ROOT bash <<'EOFOUTER' +if getent group systemd-journal >/dev/null; then + # makes the journal be saved to disk. + mkdir -p /var/log/journal + chmod 755 /var/log/journal +fi +debconf-set-selections <$FAI_ROOT/etc/grub.d/40_custom </dev/null; then + update-grub2 +else + update-grub +fi + +EOF + + + cat > $target/etc/network/interfaces <<-EOF +# generated by FAI +auto lo eth0 +iface lo inet loopback +iface eth0 inet dhcp +iface eth0 inet6 auto + +source-directory /etc/network/interfaces.d +EOF + + # previously had an else condition after + #elif ifclass VM || ifclass LINODE; then + # iface $NIC1 inet manual + # iface br0 inet dhcp + # bridge_ports $NIC1 + # bridge_stp off + # bridge_maxwait 0 + # however, on t9, on startup, br0, became + # rename1 and didn't come up. i dunno why, + # but the bridge is for vms that I rarely use, + # so not bothering to figure it out. + + + + +if ifclass LINODE; then + mkdir -p $target/etc/initramfs-tools/conf.d + cat >$target/etc/initramfs-tools/conf.d/mine < $target/etc/network/interfaces <<-EOF +# generated by FAI +auto lo eth0 +iface lo inet loopback +iface eth0 inet dhcp +# for the standard network config, uncomment this and comment the lines after it. +#iface eth0 inet6 auto + +iface eth0 inet6 static +# this is really a /128. it seems like we need to assign it for ipv6 to work. +address 2600:3c00::f03c:91ff:fe6d:baf8/64 +gateway fe80::1 + +iface eth0 inet6 static +# from a requested /64 pool +address 2600:3c00:e000:280::2/64 + +source-directory /etc/network/interfaces.d +EOF + fi +fi + +# I prefer to stick with ifup/down for now. a. networkd is not in its +# own package, so cant use in other init systems. b. it works fine. +chroot $FAI_ROOT bash </dev/null; then + usermod -aG $g iank + fi +done + +if getent group systemd-journal >/dev/null; then + usermod -aG systemd-journal iank +fi +EOFOUTER + +rm -f $target/etc/resolv.conf +ln -s ../run/systemd/resolve/stub-resolv.conf $target/etc/resolv.conf +# needed for bitfolk image +if [[ -e /a/bin/fai/fai-wrapper ]]; then + systemctl enable systemd-resolved + systemctl start systemd-resolved +fi + + + +# reading through the groups that iank is in but user2 isn't, +for g in plugdev audio video cdrom; do + $ROOTCMD usermod -a -G $g user2 +done diff --git a/fai/config/scripts/GRUB_EFI/11-iank b/fai/config/scripts/GRUB_EFI/11-iank deleted file mode 120000 index e135aad..0000000 --- a/fai/config/scripts/GRUB_EFI/11-iank +++ /dev/null @@ -1 +0,0 @@ -../GRUB_PC/11-iank \ No newline at end of file diff --git a/fai/config/scripts/GRUB_PC/11-iank b/fai/config/scripts/IANK/11-iank similarity index 99% rename from fai/config/scripts/GRUB_PC/11-iank rename to fai/config/scripts/IANK/11-iank index 954afd4..47b97ad 100755 --- a/fai/config/scripts/GRUB_PC/11-iank +++ b/fai/config/scripts/IANK/11-iank @@ -25,7 +25,7 @@ fi # -i = ignore non-matching class warnings, always exit 0 # -B = no backup files fcopy -riBM /boot -# this is also done by FABASE/10-misc by default (without B) +# this is also done by FAIBASE/10-misc by default (without B) fcopy -riBM /root fcopy -riBM /usr/local/bin -- 2.30.2