allow netdata installer to install and run netdata as any user (#13780)
* allow netdata installer to install and run netdata as any user * Update netdata-installer.sh Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com> * Update netdata-installer.sh Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com> Co-authored-by: Austin S. Hemmelgarn <ahferroin7@gmail.com>
This commit is contained in:
parent
ccfbdb5c3d
commit
067305602f
|
@ -13,6 +13,7 @@
|
||||||
-e 's#[@]libsysdir_POST@#$(libsysdir)#g' \
|
-e 's#[@]libsysdir_POST@#$(libsysdir)#g' \
|
||||||
-e 's#[@]enable_aclk_POST@#$(enable_aclk)#g' \
|
-e 's#[@]enable_aclk_POST@#$(enable_aclk)#g' \
|
||||||
-e 's#[@]enable_cloud_POST@#$(enable_cloud)#g' \
|
-e 's#[@]enable_cloud_POST@#$(enable_cloud)#g' \
|
||||||
|
-e 's#[@]netdata_user_POST@#$(netdata_user)#g' \
|
||||||
$< > $@.tmp; then \
|
$< > $@.tmp; then \
|
||||||
mv "$@.tmp" "$@"; \
|
mv "$@.tmp" "$@"; \
|
||||||
else \
|
else \
|
||||||
|
|
|
@ -1540,6 +1540,7 @@ configdir="${sysconfdir}/netdata"
|
||||||
libconfigdir="${libdir}/netdata/conf.d"
|
libconfigdir="${libdir}/netdata/conf.d"
|
||||||
logdir="${localstatedir}/log/netdata"
|
logdir="${localstatedir}/log/netdata"
|
||||||
pluginsdir="${libexecdir}/netdata/plugins.d"
|
pluginsdir="${libexecdir}/netdata/plugins.d"
|
||||||
|
netdata_user="${with_user}"
|
||||||
libsysdir="${libdir}/netdata/system"
|
libsysdir="${libdir}/netdata/system"
|
||||||
|
|
||||||
AC_SUBST([varlibdir])
|
AC_SUBST([varlibdir])
|
||||||
|
@ -1552,6 +1553,7 @@ AC_SUBST([libconfigdir])
|
||||||
AC_SUBST([logdir])
|
AC_SUBST([logdir])
|
||||||
AC_SUBST([pluginsdir])
|
AC_SUBST([pluginsdir])
|
||||||
AC_SUBST([webdir])
|
AC_SUBST([webdir])
|
||||||
|
AC_SUBST([netdata_user])
|
||||||
AC_SUBST([libsysdir])
|
AC_SUBST([libsysdir])
|
||||||
|
|
||||||
CFLAGS="${originalCFLAGS} ${OPTIONAL_LTO_CFLAGS} ${OPTIONAL_PROTOBUF_CFLAGS} ${OPTIONAL_MATH_CFLAGS} ${OPTIONAL_NFACCT_CFLAGS} \
|
CFLAGS="${originalCFLAGS} ${OPTIONAL_LTO_CFLAGS} ${OPTIONAL_PROTOBUF_CFLAGS} ${OPTIONAL_MATH_CFLAGS} ${OPTIONAL_NFACCT_CFLAGS} \
|
||||||
|
|
|
@ -934,6 +934,34 @@ if [ "$have_autotools" ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# function to extract values from the config file
|
||||||
|
config_option() {
|
||||||
|
section="${1}"
|
||||||
|
key="${2}"
|
||||||
|
value="${3}"
|
||||||
|
|
||||||
|
if [ -x "${NETDATA_PREFIX}/usr/sbin/netdata" ] && [ -r "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ]; then
|
||||||
|
"${NETDATA_PREFIX}/usr/sbin/netdata" \
|
||||||
|
-c "${NETDATA_PREFIX}/etc/netdata/netdata.conf" \
|
||||||
|
-W get "${section}" "${key}" "${value}" ||
|
||||||
|
echo "${value}"
|
||||||
|
else
|
||||||
|
echo "${value}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# the user netdata will run as
|
||||||
|
if [ "$(id -u)" = "0" ]; then
|
||||||
|
NETDATA_USER="$(config_option "global" "run as user" "netdata")"
|
||||||
|
ROOT_USER="root"
|
||||||
|
else
|
||||||
|
NETDATA_USER="${USER}"
|
||||||
|
ROOT_USER="${USER}"
|
||||||
|
fi
|
||||||
|
NETDATA_GROUP="$(id -g -n "${NETDATA_USER}")"
|
||||||
|
[ -z "${NETDATA_GROUP}" ] && NETDATA_GROUP="${NETDATA_USER}"
|
||||||
|
echo >&2 "Netdata user and group set to: ${NETDATA_USER}/${NETDATA_GROUP}"
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
if ! run ./configure \
|
if ! run ./configure \
|
||||||
--prefix="${NETDATA_PREFIX}/usr" \
|
--prefix="${NETDATA_PREFIX}/usr" \
|
||||||
|
@ -943,7 +971,7 @@ if ! run ./configure \
|
||||||
--libdir="${NETDATA_PREFIX}/usr/lib" \
|
--libdir="${NETDATA_PREFIX}/usr/lib" \
|
||||||
--with-zlib \
|
--with-zlib \
|
||||||
--with-math \
|
--with-math \
|
||||||
--with-user=netdata \
|
--with-user="${NETDATA_USER}" \
|
||||||
${NETDATA_CONFIGURE_OPTIONS} \
|
${NETDATA_CONFIGURE_OPTIONS} \
|
||||||
CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"; then
|
CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"; then
|
||||||
fatal "Failed to configure Netdata sources." I000A
|
fatal "Failed to configure Netdata sources." I000A
|
||||||
|
@ -1077,34 +1105,6 @@ progress "Read installation options from netdata.conf"
|
||||||
[ ! -f "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ] &&
|
[ ! -f "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ] &&
|
||||||
touch "${NETDATA_PREFIX}/etc/netdata/netdata.conf"
|
touch "${NETDATA_PREFIX}/etc/netdata/netdata.conf"
|
||||||
|
|
||||||
# function to extract values from the config file
|
|
||||||
config_option() {
|
|
||||||
section="${1}"
|
|
||||||
key="${2}"
|
|
||||||
value="${3}"
|
|
||||||
|
|
||||||
if [ -s "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ]; then
|
|
||||||
"${NETDATA_PREFIX}/usr/sbin/netdata" \
|
|
||||||
-c "${NETDATA_PREFIX}/etc/netdata/netdata.conf" \
|
|
||||||
-W get "${section}" "${key}" "${value}" ||
|
|
||||||
echo "${value}"
|
|
||||||
else
|
|
||||||
echo "${value}"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# the user netdata will run as
|
|
||||||
if [ "$(id -u)" = "0" ]; then
|
|
||||||
NETDATA_USER="$(config_option "global" "run as user" "netdata")"
|
|
||||||
ROOT_USER="root"
|
|
||||||
else
|
|
||||||
NETDATA_USER="${USER}"
|
|
||||||
ROOT_USER="${USER}"
|
|
||||||
fi
|
|
||||||
NETDATA_GROUP="$(id -g -n "${NETDATA_USER}")"
|
|
||||||
[ -z "${NETDATA_GROUP}" ] && NETDATA_GROUP="${NETDATA_USER}"
|
|
||||||
echo >&2 "Netdata user and group is finally set to: ${NETDATA_USER}/${NETDATA_GROUP}"
|
|
||||||
|
|
||||||
# port
|
# port
|
||||||
defport=19999
|
defport=19999
|
||||||
NETDATA_PORT="$(config_option "web" "default port" ${defport})"
|
NETDATA_PORT="$(config_option "web" "default port" ${defport})"
|
||||||
|
|
|
@ -7,16 +7,16 @@ After=network.target httpd.service squid.service nfs-server.service mysqld.servi
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=netdata
|
User=@netdata_user_POST@
|
||||||
Group=netdata
|
Group=netdata
|
||||||
RuntimeDirectory=netdata
|
RuntimeDirectory=netdata
|
||||||
RuntimeDirectoryMode=0775
|
RuntimeDirectoryMode=0775
|
||||||
PIDFile=/run/netdata/netdata.pid
|
PIDFile=/run/netdata/netdata.pid
|
||||||
ExecStart=@sbindir_POST@/netdata -P /run/netdata/netdata.pid -D
|
ExecStart=@sbindir_POST@/netdata -P /run/netdata/netdata.pid -D
|
||||||
ExecStartPre=/bin/mkdir -p @localstatedir_POST@/cache/netdata
|
ExecStartPre=/bin/mkdir -p @localstatedir_POST@/cache/netdata
|
||||||
ExecStartPre=/bin/chown -R netdata:netdata @localstatedir_POST@/cache/netdata
|
ExecStartPre=/bin/chown -R @netdata_user_POST@ @localstatedir_POST@/cache/netdata
|
||||||
ExecStartPre=/bin/mkdir -p /run/netdata
|
ExecStartPre=/bin/mkdir -p /run/netdata
|
||||||
ExecStartPre=/bin/chown -R netdata:netdata /run/netdata
|
ExecStartPre=/bin/chown -R @netdata_user_POST@ /run/netdata
|
||||||
PermissionsStartOnly=true
|
PermissionsStartOnly=true
|
||||||
|
|
||||||
# saving a big db on slow disks may need some time
|
# saving a big db on slow disks may need some time
|
||||||
|
|
Loading…
Reference in New Issue