Add support for claiming existing installs via kickstarter scripts. (#11350)
Used when the user specifies claiming options but does not request a reinstall.
Austin S. Hemmelgarn committed
Aug 10, 2021 at 13:20 UTC
00bc58df4d0aaa8b6da987afdeb830003661a04c
4 files changed
+58
-26
packaging/installer/kickstart-static64.sh
+22
-10
@@ -218,6 +218,19 @@ mark_install_type() {
218
fi
219
}
220
221
+claim() {
222
+ progress "Attempting to claim agent to ${NETDATA_CLAIM_URL}"
223
+ NETDATA_CLAIM_PATH=/opt/netdata/bin/netdata-claim.sh
224
+
225
+ if "${NETDATA_CLAIM_PATH}" -token=${NETDATA_CLAIM_TOKEN} -rooms=${NETDATA_CLAIM_ROOMS} -url=${NETDATA_CLAIM_URL} ${NETDATA_CLAIM_EXTRA}; then
226
+ progress "Successfully claimed node"
227
+ return 0
228
+ else
229
+ run_failed "Unable to claim node, you must do so manually."
230
+ return 1
231
+ fi
232
+}
233
+
234
# ----------------------------------------------------------------------------
235
umask 022
236
@@ -338,7 +351,10 @@ if [ -n "$ndpath" ] ; then
351
if [ -r "${ndprefix}/etc/netdata/.environment" ] ; then
352
ndstatic="$(grep IS_NETDATA_STATIC_BINARY "${ndprefix}/etc/netdata/.environment" | cut -d "=" -f 2 | tr -d \")"
353
if [ -z "${NETDATA_REINSTALL}" ] && [ -z "${NETDATA_LOCAL_TARBALL_OVERRIDE}" ] ; then
341
- if [ -x "${ndprefix}/usr/libexec/netdata/netdata-updater.sh" ] ; then
354
+ if [ -n "${NETDATA_CLAIM_TOKEN}" ] ; then
355
+ claim
356
+ exit $?
357
+ elif [ -x "${ndprefix}/usr/libexec/netdata/netdata-updater.sh" ] ; then
358
progress "Attempting to update existing install instead of creating a new one"
359
if run ${sudo} "${ndprefix}/usr/libexec/netdata/netdata-updater.sh" --not-running-from-cron ; then
360
progress "Updated existing install at ${ndpath}"
@@ -365,7 +381,10 @@ if [ -n "$ndpath" ] ; then
381
fi
382
else
383
progress "Existing install appears to be handled manually or through the system package manager."
368
- if [ -z "${NETDATA_ALLOW_DUPLICATE_INSTALL}" ] ; then
384
+ if [ -n "${NETDATA_CLAIM_TOKEN}" ] ; then
385
+ claim
386
+ exit $?
387
+ elif [ -z "${NETDATA_ALLOW_DUPLICATE_INSTALL}" ] ; then
388
fatal "Existing installation detected which cannot be safely updated by this script, refusing to continue."
389
exit 1
390
else
@@ -414,12 +433,5 @@ fi
433
# --------------------------------------------------------------------------------------------------------------------
434
435
if [ -n "${NETDATA_CLAIM_TOKEN}" ]; then
417
- progress "Attempting to claim agent to ${NETDATA_CLAIM_URL}"
418
- NETDATA_CLAIM_PATH=/opt/netdata/bin/netdata-claim.sh
419
-
420
- if "${NETDATA_CLAIM_PATH}" -token=${NETDATA_CLAIM_TOKEN} -rooms=${NETDATA_CLAIM_ROOMS} -url=${NETDATA_CLAIM_URL} ${NETDATA_CLAIM_EXTRA}; then
421
- progress "Successfully claimed node"
422
- else
423
- run_failed "Unable to claim node, you must do so manually."
424
- fi
436
+ claim
437
fi
packaging/installer/kickstart.sh
+34
-14
@@ -300,6 +300,23 @@ safe_sha256sum() {
300
fi
301
}
302
303
+claim() {
304
+ progress "Attempting to claim agent to ${NETDATA_CLAIM_URL}"
305
+ if [ -z "${NETDATA_PREFIX}" ] ; then
306
+ NETDATA_CLAIM_PATH=/usr/sbin/netdata-claim.sh
307
+ else
308
+ NETDATA_CLAIM_PATH="${NETDATA_PREFIX}/netdata/usr/sbin/netdata-claim.sh"
309
+ fi
310
+
311
+ if "${NETDATA_CLAIM_PATH}" -token=${NETDATA_CLAIM_TOKEN} -rooms=${NETDATA_CLAIM_ROOMS} -url=${NETDATA_CLAIM_URL} ${NETDATA_CLAIM_EXTRA}; then
312
+ progress "Successfully claimed node"
313
+ return 0
314
+ else
315
+ run_failed "Unable to claim node, you must do so manually."
316
+ return 1
317
+ fi
318
+}
319
+
320
# ---------------------------------------------------------------------------------------------------------------------
321
umask 022
322
@@ -438,7 +455,14 @@ if [ -n "$ndpath" ] ; then
455
if [ -r "${ndprefix}/etc/netdata/.environment" ] ; then
456
ndstatic="$(grep IS_NETDATA_STATIC_BINARY "${ndprefix}/etc/netdata/.environment" | cut -d "=" -f 2 | tr -d \")"
457
if [ -z "${NETDATA_REINSTALL}" ] && [ -z "${NETDATA_LOCAL_TARBALL_OVERRIDE}" ] ; then
441
- if [ -x "${ndprefix}/usr/libexec/netdata/netdata-updater.sh" ] ; then
458
+ if [ -n "${NETDATA_CLAIM_TOKEN}" ] ; then
459
+ if [ "${ndprefix}" != '/' ] ; then
460
+ NETDATA_PREFIX="${ndprefix}"
461
+ fi
462
+
463
+ claim
464
+ exit $?
465
+ elif [ -x "${ndprefix}/usr/libexec/netdata/netdata-updater.sh" ] ; then
466
progress "Attempting to update existing install instead of creating a new one"
467
if run ${sudo} "${ndprefix}/usr/libexec/netdata/netdata-updater.sh" --not-running-from-cron ; then
468
progress "Updated existing install at ${ndpath}"
@@ -465,7 +489,14 @@ if [ -n "$ndpath" ] ; then
489
fi
490
else
491
progress "Existing install appears to be handled manually or through the system package manager."
468
- if [ -z "${NETDATA_ALLOW_DUPLICATE_INSTALL}" ] ; then
492
+ if [ -n "${NETDATA_CLAIM_TOKEN}" ] ; then
493
+ if [ "${ndprefix}" != '/' ] ; then
494
+ NETDATA_PREFIX="${ndprefix}"
495
+ fi
496
+
497
+ claim
498
+ exit $?
499
+ elif [ -z "${NETDATA_ALLOW_DUPLICATE_INSTALL}" ] ; then
500
fatal "Existing installation detected which cannot be safely updated by this script, refusing to continue."
501
exit 1
502
else
@@ -529,16 +560,5 @@ fi
560
# --------------------------------------------------------------------------------------------------------------------
561
562
if [ -n "${NETDATA_CLAIM_TOKEN}" ]; then
532
- progress "Attempting to claim agent to ${NETDATA_CLAIM_URL}"
533
- if [ -z "${NETDATA_PREFIX}" ] ; then
534
- NETDATA_CLAIM_PATH=/usr/sbin/netdata-claim.sh
535
- else
536
- NETDATA_CLAIM_PATH="${NETDATA_PREFIX}/netdata/usr/sbin/netdata-claim.sh"
537
- fi
538
-
539
- if "${NETDATA_CLAIM_PATH}" -token=${NETDATA_CLAIM_TOKEN} -rooms=${NETDATA_CLAIM_ROOMS} -url=${NETDATA_CLAIM_URL} ${NETDATA_CLAIM_EXTRA}; then
540
- progress "Successfully claimed node"
541
- else
542
- run_failed "Unable to claim node, you must do so manually."
543
- fi
563
+ claim
564
fi
packaging/installer/methods/kickstart-64.md
+1
-1
@@ -97,7 +97,7 @@ To use `md5sum` to verify the integrity of the `kickstart-static64.sh` script yo
97
command above, run the following:
98
99
```bash
100
-[ "b723476b538065d280d44387403cabed" = "$(curl -Ss https://my-netdata.io/kickstart-static64.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
100
+[ "de3ae7eed8eefc48fe40ae52cead261b" = "$(curl -Ss https://my-netdata.io/kickstart-static64.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
101
```
102
103
If the script is valid, this command will return `OK, VALID`.
packaging/installer/methods/kickstart.md
+1
-1
@@ -80,7 +80,7 @@ To use `md5sum` to verify the integrity of the `kickstart.sh` script you will do
80
run the following:
81
82
```bash
83
-[ "836190944d062c712296846c45b68c94" = "$(curl -Ss https://my-netdata.io/kickstart.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
83
+[ "755019025d721fc199d52f7fb62d3420" = "$(curl -Ss https://my-netdata.io/kickstart.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
84
```
85
86
If the script is valid, this command will return `OK, VALID`.