diff --git a/roles/lmn_vpn/tasks/main.yml b/roles/lmn_vpn/tasks/main.yml index b6da7e0..f8bbf1a 100644 --- a/roles/lmn_vpn/tasks/main.yml +++ b/roles/lmn_vpn/tasks/main.yml @@ -6,9 +6,9 @@ mode: "0755" - name: Copy NetworkManager dispatcher-script (10-lmn-mount.sh) - ansible.builtin.copy: - src: 10-lmn-mount.sh - dest: /etc/NetworkManager/dispatcher.d/ + ansible.builtin.template: + src: 10-lmn-mount.sh.j2 + dest: /etc/NetworkManager/dispatcher.d/10-lmn-mount.sh mode: "0755" - name: Create link to dispatcher-script (10-lmn-mount.sh) diff --git a/roles/lmn_vpn/files/10-lmn-mount.sh b/roles/lmn_vpn/templates/10-lmn-mount.sh.j2 similarity index 75% rename from roles/lmn_vpn/files/10-lmn-mount.sh rename to roles/lmn_vpn/templates/10-lmn-mount.sh.j2 index 6f42725..a2aec0d 100755 --- a/roles/lmn_vpn/files/10-lmn-mount.sh +++ b/roles/lmn_vpn/templates/10-lmn-mount.sh.j2 @@ -4,15 +4,24 @@ set -eu if [[ "$CONNECTION_ID" = "VPN-Schule" ]]; then USERNAME=$(ps -o pid,user,args -C sddm-helper | sed -nE 's/.*user (.*)$/\1/p') - USERID=$(id -u "${USERNAME}") - GROUPID=$(id -g "${USERNAME}") - KRB5CCNAME=$(ls /tmp/krb5cc_"${USERID}"_*) - export KRB5CCNAME - printenv >&2 if [[ "$NM_DISPATCHER_ACTION" = "up" ]]; then # Exit if server is already mounted findmnt /srv/samba/schools/default-school > /dev/null && exit 0 + {% if nfs4 %} + echo "Before systemctl restart autofs" >&2 + systemctl restart srv-samba-schools-default\\x2dschool.automount + echo "After systemctl restart autofs" >&2 + {% else %} + USERID=$(id -u "${USERNAME}") + GROUPID=$(id -g "${USERNAME}") + KRB5CCNAME=$(ls /tmp/krb5cc_"${USERID}"_*) + export KRB5CCNAME + printenv >&2 + + # Exit if server is already mounted + findmnt /srv/samba/schools/default-school > /dev/null && exit 0 + if ! klist -s -c "${KRB5CCNAME}"; then #echo "try to renew KRB5-Ticket" >&2 #sudo -u "${USERNAME}" kinit -R -c "${KRB5CCNAME}" @@ -30,7 +39,9 @@ if [[ "$CONNECTION_ID" = "VPN-Schule" ]]; then -o "sec=krb5i,cruid=${USERID},user=${USERNAME},uid=${USERID},gid=${GROUPID},file_mode=0700,dir_mode=0700,mfsymlinks,nobrl,actimeo=600,cache=loose,echo_interval=10" echo "after mount" >&2 mount --bind /srv/samba/schools/default-school/share "/lmn/media/${USERNAME}/share" + {% endif %} SUDO_USER=$USERNAME /usr/local/bin/install-printers.sh + {% if not nfs4 %} elif [[ "$NM_DISPATCHER_ACTION" = "pre-down" ]]; then # FIXME: Only umount server when Wireguard-Connection was the only connection to server. # Dirty fix (works only in fvs-IP-Range) @@ -39,5 +50,6 @@ if [[ "$CONNECTION_ID" = "VPN-Schule" ]]; then umount "/lmn/media/${USERNAME}/share" umount /srv/samba/schools/default-school fi + {% endif %} fi fi