diff options
author | Austin S. Hemmelgarn <austin@netdata.cloud> | 2022-12-21 11:21:26 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-21 11:21:26 -0500 |
commit | cbfc69511f8e4e46aec2f1b98a33a9982d44c2a3 (patch) | |
tree | 8e0a1250461a1836c406995ef1a220e19f1c757c | |
parent | 8447a6e654f259f1d7efc12c9ec72a6c21539ff5 (diff) |
Finish switch to self-hosted RPM repositories. (#14158)
* Update kickstart script to use the new RPM infrastructure.
This will preferentially install the new RPM repository configuration
packages from the new infrastructure, so that installing native packages
on an RPM-based system does not touch PackageCloud at all.
* Add documentation about manual setup of RPM repositories.
This will be expanded with equivalent info about DEB repositories once
we have the new infrastructure set up for those.
* Apply suggestions from code review
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
* Update packaging/installer/methods/packages.md
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
-rw-r--r-- | packaging/installer/README.md | 4 | ||||
-rwxr-xr-x | packaging/installer/kickstart.sh | 19 | ||||
-rw-r--r-- | packaging/installer/methods/packages.md | 47 |
3 files changed, 66 insertions, 4 deletions
diff --git a/packaging/installer/README.md b/packaging/installer/README.md index 3a4237d529..e77b5c320e 100644 --- a/packaging/installer/README.md +++ b/packaging/installer/README.md @@ -81,6 +81,10 @@ operating systems. os="General Linux with one-line installer (recommended)" svg="linux" /> <InstallBox + to="/docs/agent/packaging/installer/methods/packages" + os="Native DEB/RPM packages for Linux" + svg="linux" /> + <InstallBox to="/docs/agent/packaging/docker" os="Run with Docker" svg="docker" /> diff --git a/packaging/installer/kickstart.sh b/packaging/installer/kickstart.sh index 317496cc93..fd3ecb0483 100755 --- a/packaging/installer/kickstart.sh +++ b/packaging/installer/kickstart.sh @@ -28,8 +28,10 @@ KICKSTART_SOURCE="$( PACKAGES_SCRIPT="https://raw.githubusercontent.com/netdata/netdata/master/packaging/installer/install-required-packages.sh" PATH="${PATH}:/usr/local/bin:/usr/local/sbin" PUBLIC_CLOUD_URL="https://app.netdata.cloud" -REPOCONFIG_URL_PREFIX="https://packagecloud.io/netdata/netdata-repoconfig/packages" -REPOCONFIG_VERSION="1-2" +REPOCONFIG_DEB_URL_PREFIX="https://packagecloud.io/netdata/netdata-repoconfig/packages" +REPOCONFIG_DEB_VERSION="1-2" +REPOCONFIG_RPM_URL_PREFIX="https://repo.netdata.cloud/repos/repoconfig" +REPOCONFIG_RPM_VERSION="2-1" START_TIME="$(date +%s)" STATIC_INSTALL_ARCHES="x86_64 armv7l aarch64 ppc64le" TELEMETRY_URL="https://posthog.netdata.cloud/capture/" @@ -1468,8 +1470,17 @@ try_package_install() { fi repoconfig_name="netdata-repo${release}" - repoconfig_file="${repoconfig_name}${pkg_vsep}${REPOCONFIG_VERSION}${pkg_suffix}.${pkg_type}" - repoconfig_url="${REPOCONFIG_URL_PREFIX}/${repo_prefix}/${repoconfig_file}/download.${pkg_type}" + + case "${pkg_type}" in + deb) + repoconfig_file="${repoconfig_name}${pkg_vsep}${REPOCONFIG_DEB_VERSION}${pkg_suffix}.${pkg_type}" + repoconfig_url="${REPOCONFIG_DEB_URL_PREFIX}/${repo_prefix}/${repoconfig_file}/download.${pkg_type}" + ;; + rpm) + repoconfig_file="${repoconfig_name}${pkg_vsep}${REPOCONFIG_RPM_VERSION}${pkg_suffix}.${pkg_type}" + repoconfig_url="${REPOCONFIG_RPM_URL_PREFIX}/${repo_prefix}/${SYSARCH}/${repoconfig_file}" + ;; + esac if ! pkg_installed "${repoconfig_name}"; then progress "Checking for availability of repository configuration package." diff --git a/packaging/installer/methods/packages.md b/packaging/installer/methods/packages.md new file mode 100644 index 0000000000..5d662687c7 --- /dev/null +++ b/packaging/installer/methods/packages.md @@ -0,0 +1,47 @@ +<!-- +title: "Install Netdata using native DEB/RPM packages." +description: "Instructions for how to install Netdata using native DEB or RPM packages." +custom_edit_url: https://github.com/netdata/netdata/edit/master/packaging/installer/methods/packages.md +--> + +# Installing Netdata using native DEB or RPM packages. + +For most common Linux distributions that use either DEB or RPM packages, Netdata provides pre-built native packages +for current releases in-line with our [official platform support policy](/packaging/PLATFORM_SUPPORT.md). These +packages will be used by default when attempting to install on a supported platform using our [kickstart.sh +installer script](/packaging/installer/methods/kickstart.md). + +When using the kickstart script, you can force usage of native DEB or RPM packages by passing the option +`--native-only` when invoking the script. This will cause it to only attempt to use native packages for the install, +and fail if it cannot do so. + +## Manual setup of RPM packages. + +Netdata’s official RPM repositories are hosted at https://repo.netdata.cloud/repos. We provide four groups of +repositories at that top level: + +- `stable`: Contains packages for stable releases of the Netdata Agent. +- `edge`: Contains packages for nightly builds of the Netdata Agent. +- `repoconfig`: Provides packages that set up configuration files for using the other repositories. +- `devel`: Is used for one-off development builds of the Netdata Agent, and can simply be ignored by users. + +Within each top level group of repositories, there are directories for each supported group of distributions: + +- `el`: Is for Red Hat Enterprise Linux and binary compatible distros, such as CentOS, Alma Linux, and Rocky Linux. +- `fedora`: Is for Fedora and binary compatible distros. +- `ol`: Is for Oracle Linux and binary compatible distros. +- `opensuse`: Is for openSUSE and binary compatible distros. + +Under each of those directories is a directory for each supported release of that distribution, and under that a +directory for each supported CPU architecture which contains the actual repository. + +For example, for stable release packages for RHEL 9 on 64-bit x86, the full URL for the repository would be +https://repo.netdata.cloud/repos/stable/el/9/x86\_64/ + +Our RPM packages and repository metadata are signed using a GPG key with a user name of ‘Netdatabot’. The +current key fingerprint is `6588FDD7B14721FE7C3115E6F9177B5265F56346` + +If you are explicitly configuring a system to use our repositories, the recommended setup is to download the +appropriate repository configuration package from https://repo.netdata.cloud/repos/repoconfig and install it +directly on the target system using the system package manager. This will ensure any packages needed to use the +repository are also installed, and will help enable a seamless transition if we ever need to change our infrastructure. |