From e11bc15a6dd70c363602bdfe90171c2b72aca703 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Sat, 6 Feb 2021 13:44:23 -0500 Subject: [PATCH] dns and bootstrap os fixes --- fai/config/scripts/GRUB_PC/11-iank | 163 +++++++++++++++-------------- wrt-setup-local | 94 +++++++++-------- 2 files changed, 131 insertions(+), 126 deletions(-) diff --git a/fai/config/scripts/GRUB_PC/11-iank b/fai/config/scripts/GRUB_PC/11-iank index 089f0cb..525010e 100755 --- a/fai/config/scripts/GRUB_PC/11-iank +++ b/fai/config/scripts/GRUB_PC/11-iank @@ -24,9 +24,9 @@ fi # -r = recursive # -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. -fcopy -riBM /root +fcopy -riB /boot +# this is also done by FABASE/10-misc by default (without B) +fcopy -riB /root src=$FAI/distro-install-common/shadow @@ -41,15 +41,7 @@ $FAI/distro-install-common/end -if ifclass VOL_BUSTER_BOOTSTRAP; then - fcopy -riM /etc/systemd/system - chroot $FAI_ROOT bash <<'EOFOUTER' -systemctl enable fai_check.service -EOFOUTER - exit 0 # avoid unnecessary stuff in bootstrap vol -fi - - +### begin sources install + updates # 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. tmpfile1=$(mktemp) @@ -61,7 +53,6 @@ chroot $FAI_ROOT /usr/bin/apt-cache policy >$tmpfile2 if ! diff -q $tmpfile1 $tmpfile2; then chroot $FAI_ROOT /usr/bin/apt update fi - # outside of fai, this seems to regularly lead to # E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) # so add a sleep. 1 sec is probably way more than needed. @@ -79,7 +70,7 @@ if [[ ! -r $f ]] || (( $(( $(date +%s) - $(stat -c %Y $f ) )) > 60*60*2 )); then $ROOTCMD apt-get update done fi - +### end sources install + updates #### misc configurations @@ -94,69 +85,12 @@ kexec-tools kexec-tools/load_kexec boolean false EOF apt-get install -y pxe-kexec - -#### begin .ssh setup ### -set -x -set -eE -o pipefail -mkdir -p /home/iank/.ssh -f=/root/.ssh/authorized_keys -if [[ -e $f ]]; then - cp $f /home/iank/.ssh -fi -chown -R 1000:1000 /home/iank/.ssh -chmod -R u=Xrw,og= /home/iank/.ssh -rm -rf /root/.ssh -# remove broken symlinks or the following cp will fail -find /home/iank/.ssh -xtype l -exec rm '{}' \; -cp -rL /home/iank/.ssh /root -chown -R root:root /root/.ssh -chmod 700 /root/.ssh -# https://ticktockhouse.svbtle.com/my-obligatory-ubuntu-ssh-agent-post -# systemctl --user is not available at fai time, so create the link ourselves -d=/home/iank/.config/systemd/user/default.target.wants -sudo -u iank mkdir -p $d -sudo -u iank ln -sf /usr/lib/systemd/user/ssh-agent.service $d -#### end .ssh setup ### - -## duplicated in ssh-emacs-setup -# done here so its setup earlier for convenience -line='AcceptEnv INSIDE_EMACS BRC COLUMNS' -f=/etc/ssh/sshd_config -grep -xFq "$line" $f || tee -a $f <<<"$line" - - -# default debian groups (jessie through buster) + adm, sudo, root -for g in cdrom floppy audio dip video plugdev netdev adm sudo; do - if getent gropu $g >/dev/null; then - usermod -aG $g iank - fi -done - -if getent group systemd-journal >/dev/null; then - usermod -aG systemd-journal iank -fi - - # this is usefull. Only thing reason I see this being disabled by default is # that a normal user can disrupt the system, eg cause a reboot. sed -i '$a kernel.sysrq=1 /^kernel.sysrq=/d' /etc/sysctl.conf -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 - -# bitfolk installer handles the rest -case $HOSTNAME in - bk|je) exit 0 ;; -esac +EOFOUTER if [[ $FAI_ACTION != dirinstall ]] && ! ifclass NOCRYPT; then @@ -211,13 +145,6 @@ EOF fi ##### end != dirinstall && != NOCRYPT -# 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 - - - ###### begin network setup #### # use old names. the idea of them changing between boots has never @@ -227,8 +154,14 @@ done # https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/ ln -sf /dev/null $target/etc/systemd/network/99-default.link -# use networkmanager if this host has wireless. +# bitfolk installer handles the rest +case $HOSTNAME in + bk|je) exit 0 ;; +esac + + +# use networkmanager if this host has wireless. if type -p iw &>/dev/null && [[ $(iw dev) ]]; then 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/wrt-setup-local b/wrt-setup-local index b94d13d..5e4b038 100755 --- a/wrt-setup-local +++ b/wrt-setup-local @@ -40,11 +40,6 @@ EOF -dnsmasq_restart=false -firewall_restart=false -dev2=false -test=false -libremanage_host=wrt2 secrets=false if [[ -e /root/router-secrets ]]; then @@ -58,6 +53,12 @@ fi : ${hostname:=wrt} +dnsmasq_restart=false +firewall_restart=false +dev2=false +test=false +client=false +libremanage_host=wrt2 lanip=1 while getopts hm:t: opt; do case $opt in @@ -317,6 +318,8 @@ if $client; then uset wireless.radio0.disabled false uset wireless.radio1.disabled true else + # defaults, just reseting in case client config ran + uset wireless.default_radio0.mode ap for x in 0 1; do uset wireless.default_radio$x.ssid "$ssid" uset wireless.default_radio$x.key $key @@ -696,46 +699,26 @@ EOF } firewall-cedit || firewall_restart=true -if ! uci get firewall.@zone[1].network | grep wg0 &>/dev/null; then - # cant mix cedit plus uci - echo | cedit /etc/config/firewall ||: - uci add_list firewall.@zone[1].network=wg0 - uci commit firewall - firewall-cedit ||: - firewall_restart=true -fi +# not using wireguard for now +# if ! uci get firewall.@zone[1].network | grep wg0 &>/dev/null; then +# # cant mix cedit plus uci +# echo | cedit /etc/config/firewall ||: +# uci add_list firewall.@zone[1].network=wg0 +# uci commit firewall +# firewall-cedit ||: +# firewall_restart=true +# fi v cedit /etc/hosts < 2.80. currently at 2.80. + # todo: download https://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base/dnsmasq_2.84~~test3-1_mipsel_24kc.ipk + # and install it. then we can turn off dnssec in systemd-resolved + # + # Also, reload of dnsmasq seems to break things, wifi + # clients were not getting internet connectivity. v /etc/init.d/dnsmasq restart fi -- 2.30.2