X-Git-Url: https://iankelling.org/git/?p=automated-distro-installer;a=blobdiff_plain;f=fai%2Fconfig%2Fhooks%2Finstsoft.DEFAULT;h=22c8104162eb6a9335f14bbc2eb712c06398eae0;hp=bdb856b467c6fccc896233dfae49b528b3ba6399;hb=bfd6bbd3a188aac6871f8b5e1116a0979682d52b;hpb=a4bf1d090bfbb5603bd6f2aa9f67a2e8a702d476 diff --git a/fai/config/hooks/instsoft.DEFAULT b/fai/config/hooks/instsoft.DEFAULT index bdb856b..22c8104 100755 --- a/fai/config/hooks/instsoft.DEFAULT +++ b/fai/config/hooks/instsoft.DEFAULT @@ -1,8 +1,10 @@ #!/bin/bash -# exit for any vm which is not our test vm -if ifclass VM && ! ifclass demohost; then - exit 0 +# These are things we can do before package_config packages get installed. + +# exit for any vm except demohost, or if we are doing a dirinstall +if ifclass VM && ! ifclass demohost || ifclass VOL_BULLSEYE_BOOTSTRAP || [[ ! $FAI_ACTION || $FAI_ACTION = dirinstall ]]; then + exit 0 fi keyfile=/var/lib/fai/config/distro-install-common/luks/host-$HOSTNAME @@ -13,25 +15,35 @@ cat <<'EOF' $(cat $keyfile) EOF EOFOUTER -chmod +x $f +chmod 700 $f -f=$target/root/keyscript-manual -cat >$f <<'EOF' -#!/bin/sh -if ! [ -e /tmp/key ]; then - stty -echo - read pass - printf '%s' "$pass" > /tmp/key +# for hosts which don't have these data volumes, copy the specific +# files we need. +if ifclass demohost; then + files=(/var/lib/fai/config/distro-install-common/luks/host-demohost) +elif ifclass tp; then + files=(/var/lib/fai/config/distro-install-common/luks/host-tp) +fi +if [[ ${files[0]} ]]; then + d=$target/q/root/luks + mkdir -p $d + chmod 700 $d + cp -p ${files[@]} $d fi -cat /tmp/key -EOF -chmod +x $f -if ifclass tp; then - d=$target/root/shadow - mkdir -p $d - ls -la /var/lib/fai/config/distro-install-common - cp /var/lib/fai/config/distro-install-common/traci{,-simple} $d +#### this bit is duplicated in rootsshsync, except we skip update-initramfs, +# since I suspect its not needed. I'm not sure any of this is needed +# since we initially embed the key, and with distro-begin, we run rootsshsync +# around the same time as we remove it. +d=/etc/initramfs-tools +if [[ -e $d ]] && ! diff -q /root/.ssh/authorized_keys $d/root/.ssh/authorized_keys &>/dev/null; then + mkdir -p $d/root/.ssh /etc/dropbear-initramfs + chmod 700 $d/root $d/root/.ssh + cp -p /root/.ssh/authorized_keys $d/root/.ssh/authorized_keys + cp -p /root/.ssh/authorized_keys /etc/dropbear-initramfs + if [[ -e /root/.ssh/authorized_keys2 ]]; then + cat /root/.ssh/authorized_keys2 >>/etc/dropbear-initramfs + fi fi