mirror of
https://github.com/netdata/netdata.git
synced 2025-04-28 06:32:30 +00:00
netdata/packaging/installer: nits and fixes (#6121)
* netdata: fix attempt for labels
* Revert "netdata: fix attempt for labels"
This reverts commit b61525925f
.
* netdata: fix attempt for labels (2)
* netdata/packaging/installer: Improvements over netdata installer process around go.d plugin
1) Align retries and timeouts between curl and wget scenarios, should take same time with either tool
2) Add more information when reaching the two error cases, to instruct the user on how to handle the errors
3) Make the download failure a soft error, just warn about skipping install
4) Rename download to download_go, we only run it for go so make this crystal clear
* netdata/packaging/installer: when download has not succeeded, warn the user abort the go.d install and continue
* netdata/packaging: Enforce usage of predefined start/stop commands for netdata. Add some verbosity too for visibility
* netdata/packaging/installer: FreeBSD install - add a note for rc setup, then during first start up use onestart to avoid confusing warnings
* netdata/packaging: Add newer debian supported versions, also a info print nit
* netdata/packaging: Attend first feedback - use separate variable for the command needed by installer
* netdata/packaging: make POSIX compliant equalities. The double equal sign is not working on all shells (dash for example)
* netdata/packaging: fix missed md5sum update in README.md
* netdata/packaging: revert debian selection - got misguided
I obviously didnt test correctly and i misread the release notes, i didnt check the introduction
of systemd during jessie release, i only looked for mentions in stretch.
So revert this change and retest both on droplet and container installations
* netdata/packaging: MacOS - silence a few unimportant errors, make initial detection friendlier
1) Silence failure of commands that are expected to fail on mac
2) add alternatives to uname, to match mac syntax for friendlier output
* netdata/packaging: Update README.md
* netdata/packaging: Adjustments from PR feedback
1) inform about disable-go when bailing out on download failure
2) Make sure you fail the download if the file is empty
3) Make sure you bail out if checksum fails
* netdata/packaging/ci: revert download timeout logic for wget -- seems that there was an exceptional case on wget requiring this differentiation as per cakrits comments -- will revise later, as this is not critical to change
This commit is contained in:
parent
dfa3c9064e
commit
68dbbc73f7
7 changed files with 67 additions and 32 deletions
|
@ -44,15 +44,21 @@ else
|
|||
source "${NETDATA_SOURCE_DIR}/packaging/installer/functions.sh" || exit 1
|
||||
fi
|
||||
|
||||
download() {
|
||||
download_go() {
|
||||
url="${1}"
|
||||
dest="${2}"
|
||||
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
run curl -sSL --connect-timeout 10 --retry 3 "${url}" >"${dest}" || fatal "Cannot download ${url}"
|
||||
run curl -sSL --connect-timeout 10 --retry 3 "${url}" > "${dest}"
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
run wget -T 15 -O - "${url}" >"${dest}" || fatal "Cannot download ${url}"
|
||||
run wget -T 15 -O - "${url}" > "${dest}"
|
||||
else
|
||||
fatal "I need curl or wget to proceed, but neither is available on this system."
|
||||
echo >&2
|
||||
echo >&2 "Downloading go.d plugin from '${url}' failed because of missing mandatory packages."
|
||||
echo >&2 "Either add packages or disable it by issuing '--disable-go' in the installer"
|
||||
echo >&2
|
||||
|
||||
run_failed "I need curl or wget to proceed, but neither is available on this system."
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -775,24 +781,37 @@ install_go() {
|
|||
for index in "${ARCH_MAP[@]}" ; do
|
||||
KEY="${index%%::*}"
|
||||
VALUE="${index##*::}"
|
||||
if [ "$KEY" == "$ARCH" ]; then
|
||||
if [ "$KEY" = "$ARCH" ]; then
|
||||
ARCH="${VALUE}"
|
||||
break
|
||||
fi
|
||||
done
|
||||
tmp=$(mktemp -d /tmp/netdata-go-XXXXXX)
|
||||
GO_PACKAGE_BASENAME="go.d.plugin-$GO_PACKAGE_VERSION.$OS-$ARCH"
|
||||
GO_PACKAGE_BASENAME="go.d.plugin-${GO_PACKAGE_VERSION}.${OS}-${ARCH}"
|
||||
|
||||
download "https://github.com/netdata/go.d.plugin/releases/download/$GO_PACKAGE_VERSION/$GO_PACKAGE_BASENAME" "${tmp}/$GO_PACKAGE_BASENAME"
|
||||
download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/${GO_PACKAGE_BASENAME}" "${tmp}/${GO_PACKAGE_BASENAME}"
|
||||
|
||||
download_go "https://github.com/netdata/go.d.plugin/releases/download/${GO_PACKAGE_VERSION}/config.tar.gz" "${tmp}/config.tar.gz"
|
||||
|
||||
if [ ! -f "${tmp}/${GO_PACKAGE_BASENAME}" ] || [ ! -f "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/config.tar.gz" ] || [ ! -s "${tmp}/${GO_PACKAGE_BASENAME}" ]; then
|
||||
run_failed "go.d plugin download failed, go.d plugin will not be available"
|
||||
echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
|
||||
echo >&2
|
||||
return 0
|
||||
fi
|
||||
|
||||
download "https://github.com/netdata/go.d.plugin/releases/download/$GO_PACKAGE_VERSION/config.tar.gz" "${tmp}/config.tar.gz"
|
||||
grep "${GO_PACKAGE_BASENAME}\$" "${INSTALLER_DIR}/packaging/go.d.checksums" > "${tmp}/sha256sums.txt" 2>/dev/null
|
||||
grep "config.tar.gz" "${INSTALLER_DIR}/packaging/go.d.checksums" >> "${tmp}/sha256sums.txt" 2>/dev/null
|
||||
|
||||
# Checksum validation
|
||||
if ! (cd "${tmp}" && safe_sha256sum -c "sha256sums.txt"); then
|
||||
|
||||
echo >&2 "go.d plugin checksum validation failure."
|
||||
echo >&2 "Either check the error or consider disabling it by issuing '--disable-go' in the installer"
|
||||
echo >&2
|
||||
|
||||
run_failed "go.d.plugin package files checksum validation failed."
|
||||
return 1
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Install new files
|
||||
|
@ -818,6 +837,7 @@ NETDATA_START_CMD="${NETDATA_PREFIX}/usr/sbin/netdata"
|
|||
|
||||
if grep -q docker /proc/1/cgroup >/dev/null 2>&1; then
|
||||
echo >&2 "We are running within a docker container, will not be installing netdata service"
|
||||
echo >&2
|
||||
else
|
||||
install_netdata_service || run_failed "Cannot install netdata init service."
|
||||
fi
|
||||
|
|
|
@ -44,7 +44,7 @@ bash <(curl -Ss https://my-netdata.io/kickstart.sh)
|
|||
Verify the integrity of the script with this:
|
||||
|
||||
```bash
|
||||
[ "fe451cd039c8f99b2ba4ca0feab88033" = "$(curl -Ss https://my-netdata.io/kickstart.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
|
||||
[ "8a2b054081a108dff915994ce77f2f2d" = "$(curl -Ss https://my-netdata.io/kickstart.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
|
||||
```
|
||||
*It should print `OK, VALID` if the script is the one we ship.*
|
||||
|
||||
|
@ -101,7 +101,7 @@ To install Netdata with a binary package on any Linux distro, any kernel version
|
|||
Verify the integrity of the script with this:
|
||||
|
||||
```bash
|
||||
[ "9ff4f5f37d23dff431f80d5349e0a25c" = "$(curl -Ss https://my-netdata.io/kickstart-static64.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
|
||||
[ "8779d8717ccaa8dac18d599502eef591" = "$(curl -Ss https://my-netdata.io/kickstart-static64.sh | md5sum | cut -d ' ' -f 1)" ] && echo "OK, VALID" || echo "FAILED, INVALID"
|
||||
```
|
||||
|
||||
*It should print `OK, VALID` if the script is the one we ship.*
|
||||
|
|
|
@ -332,6 +332,8 @@ install_non_systemd_init() {
|
|||
|
||||
NETDATA_START_CMD="netdata"
|
||||
NETDATA_STOP_CMD="killall netdata"
|
||||
NETDATA_INSTALLER_START_CMD="${NETDATA_START_CMD}"
|
||||
NETDATA_INSTALLER_STOP_CMD="${NETDATA_STOP_CMD}"
|
||||
|
||||
install_netdata_service() {
|
||||
local uname="$(uname 2>/dev/null)"
|
||||
|
@ -351,15 +353,23 @@ install_netdata_service() {
|
|||
|
||||
elif [ "${uname}" = "FreeBSD" ]; then
|
||||
|
||||
run cp system/netdata-freebsd /etc/rc.d/netdata &&
|
||||
NETDATA_START_CMD="service netdata start" &&
|
||||
NETDATA_STOP_CMD="service netdata stop" &&
|
||||
return 0
|
||||
run cp system/netdata-freebsd /etc/rc.d/netdata && NETDATA_START_CMD="service netdata start" &&
|
||||
NETDATA_STOP_CMD="service netdata stop" &&
|
||||
NETDATA_INSTALLER_START_CMD="service netdata onestart" &&
|
||||
NETDATA_INSTALLER_STOP_CMD="${NETDATA_STOP_CMD}"
|
||||
myret=$?
|
||||
|
||||
echo >&2 "Note: To explicitly enable netdata automatic start, set 'netdata_enable' to 'YES' in /etc/rc.conf"
|
||||
echo >&2 ""
|
||||
|
||||
return ${myret}
|
||||
|
||||
elif issystemd; then
|
||||
# systemd is running on this system
|
||||
NETDATA_START_CMD="systemctl start netdata"
|
||||
NETDATA_STOP_CMD="systemctl stop netdata"
|
||||
NETDATA_INSTALLER_START_CMD="${NETDATA_START_CMD}"
|
||||
NETDATA_INSTALLER_STOP_CMD="${NETDATA_STOP_CMD}"
|
||||
|
||||
SYSTEMD_DIRECTORY=""
|
||||
|
||||
|
@ -390,6 +400,8 @@ install_netdata_service() {
|
|||
NETDATA_START_CMD="rc-service netdata start"
|
||||
NETDATA_STOP_CMD="rc-service netdata stop"
|
||||
fi
|
||||
NETDATA_INSTALLER_START_CMD="${NETDATA_START_CMD}"
|
||||
NETDATA_INSTALLER_STOP_CMD="${NETDATA_STOP_CMD}"
|
||||
fi
|
||||
|
||||
return ${ret}
|
||||
|
@ -429,6 +441,7 @@ stop_netdata_on_pid() {
|
|||
ret=$?
|
||||
|
||||
test ${ret} -eq 0 && printf >&2 "." && sleep 2
|
||||
|
||||
done
|
||||
|
||||
echo >&2
|
||||
|
@ -446,8 +459,6 @@ netdata_pids() {
|
|||
|
||||
myns="$(readlink /proc/self/ns/pid 2>/dev/null)"
|
||||
|
||||
# echo >&2 "Stopping a (possibly) running netdata (namespace '${myns}')..."
|
||||
|
||||
for p in \
|
||||
$(cat /var/run/netdata.pid 2>/dev/null) \
|
||||
$(cat /var/run/netdata/netdata.pid 2>/dev/null) \
|
||||
|
@ -477,12 +488,15 @@ restart_netdata() {
|
|||
|
||||
local started=0
|
||||
|
||||
progress "Start netdata"
|
||||
progress "Restarting netdata instance"
|
||||
|
||||
if [ "${UID}" -eq 0 ]; then
|
||||
service netdata stop
|
||||
stop_all_netdata
|
||||
service netdata restart && started=1
|
||||
echo >&2
|
||||
echo >&2 "Stopping all netdata threads"
|
||||
run stop_all_netdata
|
||||
|
||||
echo >&2 "Starting netdata using command '${NETDATA_INSTALLER_START_CMD}'"
|
||||
run ${NETDATA_INSTALLER_START_CMD} && started=1
|
||||
|
||||
if [ ${started} -eq 1 ] && [ -z "$(netdata_pids)" ]; then
|
||||
echo >&2 "Ooops! it seems netdata is not started."
|
||||
|
@ -490,7 +504,8 @@ restart_netdata() {
|
|||
fi
|
||||
|
||||
if [ ${started} -eq 0 ]; then
|
||||
service netdata start && started=1
|
||||
echo >&2 "Attempting another netdata start using command '${NETDATA_INSTALLER_START_CMD}'"
|
||||
run ${NETDATA_INSTALLER_START_CMD} && started=1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -500,8 +515,8 @@ restart_netdata() {
|
|||
fi
|
||||
|
||||
if [ ${started} -eq 0 ]; then
|
||||
# still not started...
|
||||
|
||||
# still not started... another forced attempt, just run the binary
|
||||
echo >&2 "Netdata service still not started, attempting another forced restart by running '${netdata} ${@}'"
|
||||
run stop_all_netdata
|
||||
run "${netdata}" "${@}"
|
||||
return $?
|
||||
|
|
|
@ -127,7 +127,7 @@ download() {
|
|||
}
|
||||
|
||||
set_tarball_urls() {
|
||||
if [ "$1" == "stable" ]; then
|
||||
if [ "$1" = "stable" ]; then
|
||||
local latest
|
||||
# Simple version
|
||||
# latest="$(curl -sSL https://api.github.com/repos/netdata/netdata/releases/latest | grep tag_name | cut -d'"' -f4)"
|
||||
|
|
|
@ -141,7 +141,7 @@ warning() {
|
|||
|
||||
create_tmp_directory() {
|
||||
# Check if tmp is mounted as noexec
|
||||
if grep -Eq '^[^ ]+ /tmp [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts; then
|
||||
if grep -Eq '^[^ ]+ /tmp [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts > /dev/null 2>&1; then
|
||||
pattern="$(pwd)/netdata-kickstart-XXXXXX"
|
||||
else
|
||||
pattern="/tmp/netdata-kickstart-XXXXXX"
|
||||
|
@ -163,7 +163,7 @@ download() {
|
|||
}
|
||||
|
||||
set_tarball_urls() {
|
||||
if [ "$1" == "stable" ]; then
|
||||
if [ "$1" = "stable" ]; then
|
||||
local latest
|
||||
# Simple version
|
||||
# latest="$(curl -sSL https://api.github.com/repos/netdata/netdata/releases/latest | grep tag_name | cut -d'"' -f4)"
|
||||
|
@ -200,9 +200,9 @@ detect_bash4() {
|
|||
}
|
||||
|
||||
dependencies() {
|
||||
SYSTEM="$(uname -s)"
|
||||
OS="$(uname -o)"
|
||||
MACHINE="$(uname -m)"
|
||||
SYSTEM="$(uname -s 2> /dev/null || uname -v)"
|
||||
OS="$(uname -o 2> /dev/null || uname -rs)"
|
||||
MACHINE="$(uname -m 2> /dev/null)"
|
||||
|
||||
echo "System : ${SYSTEM}"
|
||||
echo "Operating System : ${OS}"
|
||||
|
|
|
@ -232,7 +232,7 @@ quit_msg() {
|
|||
|
||||
user_input() {
|
||||
TEXT="$1"
|
||||
if [ "${INTERACTIVITY}" == "-i" ]; then
|
||||
if [ "${INTERACTIVITY}" = "-i" ]; then
|
||||
read -r -p "$TEXT" >&2
|
||||
fi
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ set_tarball_urls() {
|
|||
return
|
||||
fi
|
||||
|
||||
if [ "$1" == "stable" ]; then
|
||||
if [ "$1" = "stable" ]; then
|
||||
local latest
|
||||
# Simple version
|
||||
# latest="$(curl -sSL https://api.github.com/repos/netdata/netdata/releases/latest | grep tag_name | cut -d'"' -f4)"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue