Files

47 lines
2.2 KiB
Bash

for m in /mnt/share /mnt/projects /mnt/iscsi; do
findmnt -n "$m" >/dev/null 2>&1 && { umount "$m" 2>/dev/null || umount -l "$m"; }
done
awk '/^[[:space:]]*#/ || NF < 2 { print; next }
$2 == "/mnt/share" || $2 == "/mnt/projects" || $2 == "/mnt/iscsi" { next }
{ print }' /etc/fstab >/etc/fstab.le-lab && cat /etc/fstab.le-lab >/etc/fstab
rm -f /etc/fstab.le-lab
# iSCSI: log out, forget the target, and clear it from the target side.
if command -v iscsiadm >/dev/null; then
iscsiadm -m node -p 10.99.0.1 --logout >/dev/null 2>&1
iscsiadm -m node -p 10.99.0.1 -o delete >/dev/null 2>&1
iscsiadm -m discoverydb -t sendtargets -p 10.99.0.1 -o delete >/dev/null 2>&1
fi
if command -v targetcli >/dev/null && targetcli ls / 2>/dev/null | grep -q /var/lib/le-lab/iscsi; then
targetcli clearconfig confirm=True >/dev/null 2>&1
targetcli saveconfig >/dev/null 2>&1
fi
# NFS: take the export out.
sed -i '\#^[[:space:]]*/srv/share[[:space:]]#d' /etc/exports 2>/dev/null
for f in /etc/exports.d/*.exports; do
[ -f "$f" ] && sed -i '\#^[[:space:]]*/srv/share[[:space:]]#d' "$f"
done
command -v exportfs >/dev/null && exportfs -ra 2>/dev/null
# Samba: drop the [projects] share and alice's Samba password.
if [ -f /etc/samba/smb.conf ]; then
awk '/^[[:space:]]*\[/ { skip = ($0 ~ /^[[:space:]]*\[projects\]/) } !skip' /etc/samba/smb.conf >/etc/samba/smb.conf.le-lab &&
cat /etc/samba/smb.conf.le-lab >/etc/samba/smb.conf
rm -f /etc/samba/smb.conf.le-lab
fi
command -v smbpasswd >/dev/null && smbpasswd -x alice >/dev/null 2>&1
command -v semanage >/dev/null && semanage fcontext -d '/srv/samba(/.*)?' >/dev/null 2>&1
# Turn off the servers the lab turned on.
for u in nfs-server smb smbd nmb nmbd target rtslib-fb-targetctl; do
grep -qx "$u" "$LAB_STATE/enabled-before" 2>/dev/null && continue
systemctl disable --now "$u" >/dev/null 2>&1
done
for u in nfs-server smb smbd target rtslib-fb-targetctl; do
rm -rf "/etc/systemd/system/$u.service.d/le-lab.conf"
rmdir "/etc/systemd/system/$u.service.d" 2>/dev/null
done
systemctl disable --now --quiet le-lab-iscsi-logout.service 2>/dev/null
rm -f /etc/systemd/system/le-lab-iscsi-logout.service
systemctl daemon-reload
rm -rf /srv/share /srv/samba /var/lib/le-lab/iscsi /root/.smbcred
rmdir /mnt/share /mnt/projects /mnt/iscsi 2>/dev/null
true