configure.sh wizard, install improvements, encryption fixes, branch support #19
+76
-40
@@ -52,12 +52,84 @@ do_configure() {
|
|||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
source "$CONF_FILE"
|
source "$CONF_FILE"
|
||||||
VARS=("TLDOMAIN" "DOMAIN" "SERVERFQDN_IPA" "SERVERFQDN_NC" "CLIENTADMINGROUP" "IPAVAULTUSE" )
|
VARS=("TLDOMAIN" "SERVERFQDN_IPA" "DOMAIN" "SERVERFQDN_NC" "IPAVAULTUSE" "IPAVAULTNAME" "CLIENT_SOFTWARE_SRC" "DISTCONFIGPATH_SRC" "CLIENTADMINGROUP" )
|
||||||
for ELE in "${VARS[@]}"
|
for ELE in "${VARS[@]}"
|
||||||
do
|
do
|
||||||
new_ELE=$(prompt_value "${ELE}" "${!ELE}")
|
while true; do
|
||||||
set_conf_var "${ELE}" "${new_ELE}"
|
new_ELE=$(prompt_value "${ELE}" "${!ELE}")
|
||||||
source "$CONF_FILE"
|
set_conf_var "${ELE}" "${new_ELE}"
|
||||||
|
source "$CONF_FILE"
|
||||||
|
REPEAT_TEST=1
|
||||||
|
case ${ELE} in
|
||||||
|
"SERVERFQDN_NC") echo ""
|
||||||
|
echo "=== Testing: Nextcloud server ==="
|
||||||
|
NC_STATUS=$(curl -fsSL "https://${SERVERFQDN_NC}/status.php" 2>/dev/null)
|
||||||
|
if echo "$NC_STATUS" | grep -q '"installed":true'; then
|
||||||
|
NC_VERSION=$(echo "$NC_STATUS" | grep -oP '(?<="versionstring":")[^"]+')
|
||||||
|
echo "Nextcloud confirmed at ${SERVERFQDN_NC} (version ${NC_VERSION})."
|
||||||
|
REPEAT_TEST=0
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "WARNING: '${SERVERFQDN_NC}' does not appear to be a valid Nextcloud server."
|
||||||
|
echo " Could not reach https://${SERVERFQDN_NC}/status.php or response was unexpected."
|
||||||
|
read -rp "Start configuration again (a) or quit (q)? [a/q]: " ans
|
||||||
|
if [[ "${ans,,}" == "q" ]]; then
|
||||||
|
echo "Quitting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"SERVERFQDN_IPA") echo ""
|
||||||
|
echo "=== Testing: FreeIPA server ==="
|
||||||
|
IPA_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
|
||||||
|
"https://${SERVERFQDN_IPA}/ipa/session/json" 2>/dev/null)
|
||||||
|
if [[ "$IPA_CODE" == "200" || "$IPA_CODE" == "401" ]]; then
|
||||||
|
echo "FreeIPA server confirmed at ${SERVERFQDN_IPA}."
|
||||||
|
REPEAT_TEST=0
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
echo "WARNING: '${SERVERFQDN_IPA}' does not appear to be a valid FreeIPA server."
|
||||||
|
echo " https://${SERVERFQDN_IPA}/ipa/session/json returned: ${IPA_CODE:-no response}"
|
||||||
|
read -rp "Start configuration again (a) or quit (q)? [a/q]: " ans
|
||||||
|
if [[ "${ans,,}" == "q" ]]; then
|
||||||
|
echo "Quitting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
"DOMAIN") echo ""
|
||||||
|
echo "=== Testing: IPA Domain DNS records ==="
|
||||||
|
if ! command -v dig &>/dev/null; then
|
||||||
|
echo "WARNING: 'dig' not found; skipping DNS check."
|
||||||
|
REPEAT_TEST=0
|
||||||
|
else
|
||||||
|
LDAP_SRV=$(dig +short SRV "_ldap._tcp.${DOMAIN}" 2>/dev/null)
|
||||||
|
KRB_TXT=$(dig +short TXT "_kerberos.${DOMAIN}" 2>/dev/null)
|
||||||
|
KDC_SRV=$(dig +short SRV "_kerberos._udp.${DOMAIN}" 2>/dev/null)
|
||||||
|
if [[ -n "$LDAP_SRV" && -n "$KRB_TXT" ]]; then
|
||||||
|
REALM=$(echo "$KRB_TXT" | tr -d '"')
|
||||||
|
echo "IPA domain confirmed: ${DOMAIN}"
|
||||||
|
echo " Kerberos realm : ${REALM}"
|
||||||
|
[[ -n "$KDC_SRV" ]] && echo " KDC SRV : ${KDC_SRV}"
|
||||||
|
REPEAT_TEST=0
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
[[ -z "$LDAP_SRV" ]] && echo "WARNING: No _ldap._tcp.${DOMAIN} SRV record found."
|
||||||
|
[[ -z "$KRB_TXT" ]] && echo "WARNING: No _kerberos.${DOMAIN} TXT record found."
|
||||||
|
echo " '${DOMAIN}' does not appear to be a valid IPA domain."
|
||||||
|
read -rp "Start configuration again (a) or quit (q)? [a/q]: " ans
|
||||||
|
if [[ "${ans,,}" == "q" ]]; then
|
||||||
|
echo "Quitting."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*) REPEAT_TEST=0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
[[ $REPEAT_TEST == 0 ]] && break
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
@@ -67,42 +139,6 @@ do_configure() {
|
|||||||
while true; do
|
while true; do
|
||||||
do_configure
|
do_configure
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Testing: Nextcloud server ==="
|
|
||||||
NC_STATUS=$(curl -fsSL "https://${SERVERFQDN_NC}/status.php" 2>/dev/null)
|
|
||||||
if echo "$NC_STATUS" | grep -q '"installed":true'; then
|
|
||||||
NC_VERSION=$(echo "$NC_STATUS" | grep -oP '(?<="versionstring":")[^"]+')
|
|
||||||
echo "Nextcloud confirmed at ${SERVERFQDN_NC} (version ${NC_VERSION})."
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
echo "WARNING: '${SERVERFQDN_NC}' does not appear to be a valid Nextcloud server."
|
|
||||||
echo " Could not reach https://${SERVERFQDN_NC}/status.php or response was unexpected."
|
|
||||||
read -rp "Start configuration again (a) or quit (q)? [a/q]: " ans
|
|
||||||
if [[ "${ans,,}" == "q" ]]; then
|
|
||||||
echo "Quitting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=== Testing: FreeIPA server ==="
|
|
||||||
IPA_CODE=$(curl -s -o /dev/null -w "%{http_code}" \
|
|
||||||
"https://${SERVERFQDN_IPA}/ipa/session/json" 2>/dev/null)
|
|
||||||
if [[ "$IPA_CODE" == "200" || "$IPA_CODE" == "401" ]]; then
|
|
||||||
echo "FreeIPA server confirmed at ${SERVERFQDN_IPA}."
|
|
||||||
else
|
|
||||||
echo ""
|
|
||||||
echo "WARNING: '${SERVERFQDN_IPA}' does not appear to be a valid FreeIPA server."
|
|
||||||
echo " https://${SERVERFQDN_IPA}/ipa/session/json returned: ${IPA_CODE:-no response}"
|
|
||||||
read -rp "Start configuration again (a) or quit (q)? [a/q]: " ans
|
|
||||||
if [[ "${ans,,}" == "q" ]]; then
|
|
||||||
echo "Quitting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "=== Select Kickstart Profile ==="
|
echo "=== Select Kickstart Profile ==="
|
||||||
KS_DIR="${SCRIPTDIR}/../ks_base_profiles"
|
KS_DIR="${SCRIPTDIR}/../ks_base_profiles"
|
||||||
|
|||||||
Reference in New Issue
Block a user