@cryptotaxi247 / netdata-1 / commits / c8b82d9a3

netdata/packaging: Move tarball checksum information into lib dir of netdata (#6555)

* netdata/packaging: Move tarball checksum information into lib dir of netdata 1) Introduce NETDATA_LIB_DIR within environment file, we are going to need to refer to it 2) move NETDATA_TARBALL_CHECKSUM to /netdata.tarball.checksum 3) Make sure you support transitional period, which means load and remove the variable from the old location then move it to the new one * netdata/packaging: relocate netdata-updater.sh and netdata-uninstaller.sh

Paul Emm. Katsoulakis committed Jul 29, 2019 at 15:33 UTC c8b82d9a37bea5203000eecdcd0d3a68fdff0ac8
3 files changed +39 -15
netdata-installer.sh
+26 -10
@@ -985,8 +985,13 @@ fi
985
986 # -----------------------------------------------------------------------------
987 progress "Copy uninstaller"
988 -sed "s|ENVIRONMENT_FILE=\"/etc/netdata/.environment\"|ENVIRONMENT_FILE=\"${NETDATA_PREFIX}/etc/netdata/.environment\"|" packaging/installer/netdata-uninstaller.sh > ${NETDATA_PREFIX}/usr/libexec/netdata-uninstaller.sh
989 -chmod 750 ${NETDATA_PREFIX}/usr/libexec/netdata-uninstaller.sh
988 +if [ -f "${NETDATA_PREFIX}"/usr/libexec/netdata-uninstaller.sh ]; then
989 + echo >&2 "Removing uninstaller from old location"
990 + rm -f "${NETDATA_PREFIX}"/usr/libexec/netdata-uninstaller.sh;
991 +fi
992 +
993 +sed "s|ENVIRONMENT_FILE=\"/etc/netdata/.environment\"|ENVIRONMENT_FILE=\"${NETDATA_PREFIX}/etc/netdata/.environment\"|" packaging/installer/netdata-uninstaller.sh > ${NETDATA_PREFIX}/usr/libexec/netdata/netdata-uninstaller.sh
994 +chmod 750 ${NETDATA_PREFIX}/usr/libexec/netdata/netdata-uninstaller.sh
995
996 # -----------------------------------------------------------------------------
997 progress "Basic netdata instructions"
@@ -1007,19 +1012,24 @@ To start netdata run:
1012 ${TPUT_YELLOW}${TPUT_BOLD}${NETDATA_START_CMD}${TPUT_RESET}
1013
1014 END
1010 -echo >&2 "Uninstall script copied to: ${TPUT_RED}${TPUT_BOLD}${NETDATA_PREFIX}/usr/libexec/netdata-uninstaller.sh${TPUT_RESET}"
1015 +echo >&2 "Uninstall script copied to: ${TPUT_RED}${TPUT_BOLD}${NETDATA_PREFIX}/usr/libexec/netdata/netdata-uninstaller.sh${TPUT_RESET}"
1016 echo >&2
1017
1018 progress "Install netdata updater tool"
1019
1020 +if [ -f "${NETDATA_PREFIX}"/usr/libexec/netdata-updater.sh ]; then
1021 + echo >&2 "Removing updater from previous location"
1022 + rm -f "${NETDATA_PREFIX}"/usr/libexec/netdata-updater.sh
1023 +fi
1024 +
1025 if [ -f "${INSTALLER_DIR}/packaging/installer/netdata-updater.sh" ]; then
1016 - sed "s|THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT|${NETDATA_USER_CONFIG_DIR}/.environment|" "${INSTALLER_DIR}/packaging/installer/netdata-updater.sh" > "${NETDATA_PREFIX}/usr/libexec/netdata-updater.sh" || exit 1
1026 + sed "s|THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT|${NETDATA_USER_CONFIG_DIR}/.environment|" "${INSTALLER_DIR}/packaging/installer/netdata-updater.sh" > "${NETDATA_PREFIX}/usr/libexec/netdata/netdata-updater.sh" || exit 1
1027 else
1018 - sed "s|THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT|${NETDATA_USER_CONFIG_DIR}/.environment|" "${NETDATA_SOURCE_DIR}/packaging/installer/netdata-updater.sh" > "${NETDATA_PREFIX}/usr/libexec/netdata-updater.sh" || exit 1
1028 + sed "s|THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT|${NETDATA_USER_CONFIG_DIR}/.environment|" "${NETDATA_SOURCE_DIR}/packaging/installer/netdata-updater.sh" > "${NETDATA_PREFIX}/usr/libexec/netdata/netdata-updater.sh" || exit 1
1029 fi
1030
1021 -chmod 0755 ${NETDATA_PREFIX}/usr/libexec/netdata-updater.sh
1022 -echo >&2 "Update script is located at ${TPUT_GREEN}${TPUT_BOLD}${NETDATA_PREFIX}/usr/libexec/netdata-updater.sh${TPUT_RESET}"
1031 +chmod 0755 ${NETDATA_PREFIX}/usr/libexec/netdata/netdata-updater.sh
1032 +echo >&2 "Update script is located at ${TPUT_GREEN}${TPUT_BOLD}${NETDATA_PREFIX}/usr/libexec/netdata/netdata-updater.sh${TPUT_RESET}"
1033 echo >&2
1034
1035 # Figure out the cron directory for the distro
@@ -1043,7 +1053,7 @@ else
1053 echo >&2 "Adding to cron"
1054
1055 rm -f "${crondir}/netdata-updater"
1046 - ln -sf "${NETDATA_PREFIX}/usr/libexec/netdata-updater.sh" "${crondir}/netdata-updater"
1056 + ln -sf "${NETDATA_PREFIX}/usr/libexec/netdata/netdata-updater.sh" "${crondir}/netdata-updater"
1057
1058 echo >&2 "Auto-updating has been enabled. Updater script linked to: ${TPUT_RED}${TPUT_BOLD}${crondir}/netdata-update${TPUT_RESET}"
1059 echo >&2
@@ -1062,7 +1072,10 @@ else
1072 fi
1073 fi
1074
1075 +progress "Wrap up environment set up"
1076 +
1077 # Save environment variables
1078 +echo >&2 "Preparing .environment file"
1079 cat <<EOF > "${NETDATA_USER_CONFIG_DIR}/.environment"
1080 # Created by installer
1081 PATH="${PATH}"
@@ -1075,10 +1088,13 @@ NETDATA_GROUP="${NETDATA_GROUP}"
1088 REINSTALL_COMMAND="${REINSTALL_COMMAND}"
1089 RELEASE_CHANNEL="${RELEASE_CHANNEL}"
1090 IS_NETDATA_STATIC_BINARY="${IS_NETDATA_STATIC_BINARY}"
1078 -# This value is meant to be populated by autoupdater (if enabled)
1079 -NETDATA_TARBALL_CHECKSUM="new_installation"
1091 +NETDATA_LIB_DIR="${NETDATA_LIB_DIR}"
1092 EOF
1093
1094 +echo >&2 "Setting netdata.tarball.checksum to 'new_installation'"
1095 +cat <<EOF > "${NETDATA_LIB_DIR}/netdata.tarball.checksum"
1096 +new_installation
1097 +EOF
1098
1099 # -----------------------------------------------------------------------------
1100 echo >&2
packaging/installer/UNINSTALL.md
+1 -1
@@ -16,7 +16,7 @@ NETDATA_ADDED_TO_GROUPS="<additional groups>" # Additional groups for a user ru
16 ```
17 3. Run `netdata-uninstaller.sh` as follows
18 ```
19 -${NETDATA_PREFIX}/usr/libexec/netdata-uninstaller.sh --yes --env <environment_file>
19 +${NETDATA_PREFIX}/usr/libexec/netdata/netdata-uninstaller.sh --yes --env <environment_file>
20 ```
21
22 Note: Existing installations may still need to download the file if it's not present.
packaging/installer/netdata-updater.sh
+12 -4
@@ -11,7 +11,7 @@
11 # - NETDATA_TARBALL_URL
12 # - NETDATA_TARBALL_CHECKSUM_URL
13 # - NETDATA_TARBALL_CHECKSUM
14 -#
14 +# - NETDATA_PREFIX / NETDATA_LIB_DIR (After 1.16.1 we will only depend on lib dir)
15 #
16 # Copyright: SPDX-License-Identifier: GPL-3.0-or-later
17 #
@@ -142,10 +142,12 @@ update() {
142
143 info "Re-installing netdata..."
144 eval "${REINSTALL_COMMAND} --dont-wait ${do_not_start}" >&3 2>&3 || fatal "FAILED TO COMPILE/INSTALL NETDATA"
145 +
146 + # We no longer store checksum info here. but leave this so that we clean up all environment files upon next update.
147 sed -i '/NETDATA_TARBALL/d' "${ENVIRONMENT_FILE}"
146 - cat <<EOF >>"${ENVIRONMENT_FILE}"
147 -NETDATA_TARBALL_CHECKSUM="$NEW_CHECKSUM"
148 -EOF
148 +
149 + info "Updating tarball checksum info"
150 + echo "${NEW_CHECKSUM}" > "${NETDATA_LIB_DIR}/netdata.tarball.checksum"
151 fi
152
153 rm -rf "${tmpdir}" >&3 2>&3
@@ -159,6 +161,12 @@ EOF
161 # shellcheck source=/dev/null
162 source "${ENVIRONMENT_FILE}" || exit 1
163
164 +# We dont expect to find lib dir variable on older installations, so load this path if none found
165 +export NETDATA_LIB_DIR="${NETDATA_LIB_DIR:-${NETDATA_PREFIX}/var/lib/netdata}"
166 +
167 +# Source the tarbal checksum, if not already available from environment (for existing installations with the old logic)
168 +[[ -z "${NETDATA_TARBALL_CHECKSUM}" ]] && [[ -f ${NETDATA_LIB_DIR}/netdata.tarball.checksum ]] && NETDATA_TARBALL_CHECKSUM="$(cat "${NETDATA_LIB_DIR}/netdata.tarball.checksum")"
169 +
170 if [ "${INSTALL_UID}" != "$(id -u)" ]; then
171 fatal "You are running this script as user with uid $(id -u). We recommend to run this script as root (user with uid 0)"
172 fi