Index: management/univention-join/univention-join =================================================================== --- management/univention-join/univention-join (Revision 74518) +++ management/univention-join/univention-join (Arbeitskopie) @@ -564,13 +564,25 @@ echo -n "Join Computer Account: " args+=(-role "$server_role" -hostname "$hostname" -domainname "$domainname") -# Copy local $DCPWD to remote $DCPWD' and invoke univention-join remotely -univention-ssh --no-split "$DCPWD" "${DCACCOUNT}@${DCNAME}" \ - 'DCPWD=$(mktemp) && trap "rm -f \"$DCPWD\"" EXIT && cat >"$DCPWD" && /usr/share/univention-join/univention-server-join -bindpwfile "$DCPWD"' \ - "$(bashquote "${args[@]}")" <"$DCPWD" 2>&1 | - tee "$USERTMP/secret" | - grep -v '^KerberosPasswd="' | - tee "$USERTMP/scrubbed" >>/var/log/univention/join.log +for TRY in $(seq 3); + do + # Copy local $DCPWD to remote $DCPWD' and invoke univention-join remotely + univention-ssh --no-split "$DCPWD" "${DCACCOUNT}@${DCNAME}" \ + 'DCPWD=$(mktemp) && trap "rm -f \"$DCPWD\"" EXIT && cat >"$DCPWD" && /usr/share/univention-join/univention-server-join -bindpwfile "$DCPWD"' \ + "$(bashquote "${args[@]}")" <"$DCPWD" 2>&1 | + tee "$USERTMP/secret" | + grep -v '^KerberosPasswd="' | + tee "$USERTMP/scrubbed" >>/var/log/univention/join.log + if [ -s "$USERTMP/secret" ] + then + kpwd="$(sed -ne 's|^KerberosPasswd="\(.*\)" *|\1|p' <"$USERTMP/secret")" + if [ -n "$kpwd" ]; then + break + fi + fi + echo -n "." + sleep 20 +done res_message="$(sed -ne 's/^E:\s*//p' "$USERTMP/scrubbed")" if [ -z "$res_message" ]; then