summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAustin S. Hemmelgarn <austin@netdata.cloud>2022-04-11 07:04:31 -0400
committerGitHub <noreply@github.com>2022-04-11 07:04:31 -0400
commit0fcf54e0c998d249b682f5dace6458cf64dc0842 (patch)
tree7cb3e72614a1946156a019956a3ca3c4c8625851
parent6b2534969aa7fa9d09d1c72afc00c3aa6513b537 (diff)
Add handling for claiming non-standard install types with kickstart. (#12064)
* Add handling for claiming non-standard install types with kickstart. Also adds a check to verify that there is a usable claiming script before attempting to claim. * Fix handling for claiming native installs. * Make claim script search code more robust.
-rwxr-xr-xpackaging/installer/kickstart.sh31
1 files changed, 28 insertions, 3 deletions
diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh
index f037e74b4c..10e689cc5a 100755
--- a/packaging/installer/kickstart.sh
+++ b/packaging/installer/kickstart.sh
@@ -662,7 +662,7 @@ detect_existing_install() {
ndprefix="$(dirname "$(dirname "${ndpath}")")"
fi
- if echo "${ndprefix}" | grep -Eq '/usr$'; then
+ if echo "${ndprefix}" | grep -Eq '^/usr$'; then
ndprefix="$(dirname "${ndprefix}")"
fi
fi
@@ -784,7 +784,20 @@ handle_existing_install() {
fi
fi
else
- fatal "Found an existing netdata install at ${ndprefix}, but the install type is '${INSTALL_TYPE}', which is not supported, refusing to proceed." F0103
+ if [ -n "${NETDATA_CLAIM_TOKEN}" ]; then
+ progress "Attempting to claim existing install at ${ndprefix}."
+ INSTALL_PREFIX="${ndprefix}"
+ claim
+ ret=$?
+
+ cleanup
+ trap - EXIT
+ exit $ret
+ elif [ "${NETDATA_CLAIM_ONLY}" -eq 1 ]; then
+ fatal "User asked to claim, but did not proide a claiming token." F0202
+ else
+ fatal "Found an existing netdata install at ${ndprefix}, but the install type is '${INSTALL_TYPE}', which is not supported, refusing to proceed." F0103
+ fi
fi
;;
esac
@@ -890,14 +903,26 @@ claim() {
fi
progress "Attempting to claim agent to ${NETDATA_CLAIM_URL}"
- if [ -z "${INSTALL_PREFIX}" ] || [ "${INSTALL_PREFIX}" = "/" ]; then
+ if command -v netdata-claim.sh > /dev/null 2>&1; then
+ NETDATA_CLAIM_PATH="$(command -v netdata-claim.sh)"
+ elif [ -z "${INSTALL_PREFIX}" ] || [ "${INSTALL_PREFIX}" = "/" ]; then
NETDATA_CLAIM_PATH=/usr/sbin/netdata-claim.sh
elif [ "${INSTALL_PREFIX}" = "/opt/netdata" ]; then
NETDATA_CLAIM_PATH="/opt/netdata/bin/netdata-claim.sh"
+ elif [ ! -d "${INSTALL_PREFIX}/netdata" ]; then
+ if [ -d "${INSTALL_PREFIX}/usr" ]; then
+ NETDATA_CLAIM_PATH="${INSTALL_PREFIX}/usr/sbin/netdata-claim.sh"
+ else
+ NETDATA_CLAIM_PATH="${INSTALL_PREFIX}/sbin/netdata-claim.sh"
+ fi
else
NETDATA_CLAIM_PATH="${INSTALL_PREFIX}/netdata/usr/sbin/netdata-claim.sh"
fi
+ if [ ! -x "${NETDATA_CLAIM_PATH}" ]; then
+ fatal "Unable to find usable claiming script." F0106
+ fi
+
if ! is_netdata_running; then
NETDATA_CLAIM_EXTRA="${NETDATA_CLAIM_EXTRA} -daemon-not-running"
fi