Docs: Add instructions for Alpine Linux

refs #5491

Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
This commit is contained in:
Francesco Colista 2017-08-10 15:29:22 +02:00 committed by Michael Friedrich
parent 04221c8759
commit 30d40352de
2 changed files with 113 additions and 10 deletions

View File

@ -27,23 +27,23 @@ parentheses):
* cmake >= 2.6
* GNU make (make)
* C++ compiler which supports C++11 (gcc-c++ >= 4.7 on RHEL/SUSE, build-essential on Debian, alternatively clang++)
* C++ compiler which supports C++11 (gcc-c++ >= 4.7 on RHEL/SUSE, build-essential on Debian, alternatively clang++, build-base on Alpine)
* RedHat Developer Tools on RHEL5/6 (details on building below)
* pkg-config
* OpenSSL library and header files >= 0.9.8 (openssl-devel on RHEL, libopenssl1-devel on SLES11,
libopenssl-devel on SLES12, libssl-dev on Debian)
* Boost library and header files >= 1.48.0 (boost148-devel on EPEL for RHEL / CentOS, libboost-all-dev on Debian)
libopenssl-devel on SLES12, libssl-dev on Debian, libressl-dev on Alpine)
* Boost library and header files >= 1.48.0 (boost148-devel on EPEL for RHEL / CentOS, libboost-all-dev on Debian, boost-dev on Alpine)
* GNU bison (bison)
* GNU flex (flex) >= 2.5.35
* recommended: libexecinfo on FreeBSD (automatically used when Icinga 2 is
installed via port or package)
* optional: MySQL (mysql-devel on RHEL, libmysqlclient-devel on SUSE, libmysqlclient-dev on Debian);
* optional: MySQL (mysql-devel on RHEL, libmysqlclient-devel on SUSE, libmysqlclient-dev on Debian, mariadb-dev on Alpine);
set CMake variable `ICINGA2_WITH_MYSQL` to `OFF` to disable this module
* optional: PostgreSQL (postgresql-devel on RHEL, libpq-dev on Debian); set CMake
* optional: PostgreSQL (postgresql-devel on RHEL, libpq-dev on Debian, postgresql-dev on Alpine); set CMake
variable `ICINGA2_WITH_PGSQL` to `OFF` to disable this module
* optional: YAJL (yajl-devel on RHEL, libyajl-dev on Debian)
* optional: YAJL (yajl-devel on RHEL, libyajl-dev on Debian, yajl-dev on Alpine)
* optional: libedit (libedit-devel on CentOS (RHEL requires rhel-7-server-optional-rpms
repository for el7 e.g.), libedit-dev on Debian)
repository for el7 e.g.), libedit-dev on Debian and Alpine)
* optional: Termcap (libtermcap-devel on RHEL, not necessary on Debian) - only
required if libedit doesn't already link against termcap/ncurses
* optional: libwxgtk2.8-dev or newer (wxGTK-devel and wxBase) - only required when building the Icinga 2 Studio
@ -65,6 +65,13 @@ using the `ICINGA2_USER`, `ICINGA2_GROUP` and `ICINGA2_COMMAND_GROUP` variables.
# groupadd icingacmd
# useradd -c "icinga" -s /sbin/nologin -G icingacmd -g icinga icinga
On Alpine (which uses ash busybox) you can run:
# addgroup -S icinga
# addgroup -S icingacmd
# adduser -S -D -H -h /var/spool/icinga2 -s /sbin/nologin -G icinga -g icinga icinga
# adduser icinga icingacmd
Add the web server user to the icingacmd group in order to grant it write
permissions to the external command pipe and livestatus socket:
@ -234,6 +241,18 @@ into your source tree and run the following command:
$ dpkg-buildpackage -uc -us
## Build Alpine Linux packages
A simple way to setup a build environment is installing Alpine in a chroot.
In this way, you can set up an Alpine build environment in a chroot under a
different Linux distro.
There is a script that simplifies these steps with just two commands, and
can be found [here](https://github.com/alpinelinux/alpine-chroot-install).
Once the build environment is installed, you can setup the system to build
the packages by following [this document](https://wiki.alpinelinux.org/wiki/Creating_an_Alpine_package).
## Build Post Install Tasks
After building Icinga 2 yourself, your package build system should at least run the following post
@ -258,10 +277,23 @@ Icinga 2 can be started as a daemon using the provided init script:
# /etc/init.d/icinga2
Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status}
Or if your distribution uses systemd:
If your distribution uses systemd:
# systemctl {start|stop|reload|status|enable|disable} icinga2
Or if your distribution uses openrc (like Alpine):
# rc-service icinga2
Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status}
Note: the openrc's init.d is not shipped by default.
A working init.d with openrc can be found here: (https://git.alpinelinux.org/cgit/aports/plain/community/icinga2/icinga2.initd). If you have customized some path, edit the file and adjust it according with your setup.
Those few steps can be followed:
# wget https://git.alpinelinux.org/cgit/aports/plain/community/icinga2/icinga2.initd
# mv icinga2.initd /etc/init.d/icinga2
# chmod +x /etc/init.d/icinga2
Icinga 2 reads a single configuration file which is used to specify all
configuration settings (global settings, hosts, services, etc.). The
configuration format is explained in detail in the [doc/](doc/) directory.

View File

@ -21,7 +21,7 @@ and distribution you are running.
FreeBSD | [Upstream](https://www.freshports.org/net-mgmt/icinga2)
OpenBSD | [Upstream](http://ports.su/net/icinga/core2,-main)
ArchLinux | [Upstream](https://aur.archlinux.org/packages/icinga2)
AlpineLinux | [Upstream](https://pkgs.alpinelinux.org/package/edge/community/x86_64/icinga2)
Alpine Linux | [Upstream](https://pkgs.alpinelinux.org/package/edge/community/x86_64/icinga2)
Packages for distributions other than the ones listed above may also be
available. Please contact your distribution packagers.
@ -75,6 +75,11 @@ openSUSE:
# zypper ref
Alpine Linux:
# echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
# apk update
#### RHEL/CentOS EPEL Repository <a id="package-repositories-rhel-epel"></a>
The packages for RHEL/CentOS depend on other packages which are distributed
@ -97,6 +102,13 @@ as part of the [SLES 11 Security Module](https://www.suse.com/communities/conver
Icinga 2 requires the `libboost_chrono1_54_0` package from the `SLES 12 SDK` repository. Refer to the SUSE Enterprise
Linux documentation for further information.
#### Alpine Linux Notes <a id="package-repositories-alpine-notes"></a>
The example provided suppose that you are running Alpine edge, which is the -dev branch and is a rolling release.
If you are using a stable version please "pin" the edge repository on the latest Icinga 2 package version.
In order to correctly manage your repository, please follow
[these instructions](https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management)
### Installing Icinga 2 <a id="installing-icinga2"></a>
You can install Icinga 2 by using your distribution's package manager
@ -126,6 +138,11 @@ FreeBSD:
# pkg install icinga2
Alpine Linux:
# apk add icinga2
### Enabled Features during Installation <a id="installation-enabled-features"></a>
The default installation will enable three features required for a basic
@ -152,7 +169,7 @@ By default Icinga 2 uses the following files and directories:
----------------------------------------------|------------------------------------
/etc/icinga2 | Contains Icinga 2 configuration files.
/usr/lib/systemd/system/icinga2.service | The Icinga 2 Systemd service file on systems using Systemd.
/etc/init.d/icinga2 | The Icinga 2 init script on systems using SysVinit.
/etc/init.d/icinga2 | The Icinga 2 init script on systems using SysVinit or OpenRC
/usr/sbin/icinga2 | Shell wrapper for the Icinga 2 binary.
/usr/lib\*/icinga2 | Libraries and the Icinga 2 binary (use `find /usr -type f -name icinga2` to locate the binary path).
/usr/share/doc/icinga2 | Documentation files that come with Icinga 2.
@ -202,6 +219,7 @@ RHEL/CentOS | nagios-plugins-all | [EPEL](https://fedoraproject.org/w
SLES/OpenSUSE | monitoring-plugins | [server:monitoring](https://build.opensuse.org/project/repositories/server:monitoring) | /usr/lib/nagios/plugins
Debian/Ubuntu | monitoring-plugins | - | /usr/lib/nagios/plugins
FreeBSD | monitoring-plugins | - | /usr/local/libexec/nagios
Alpine Linux | monitoring-plugins | - | /usr/lib/monitoring-plugins
OS X | nagios-plugins | [MacPorts](https://www.macports.org), [Homebrew](https://brew.sh) | /opt/local/libexec or /usr/local/sbin
The recommended way of installing these standard plugins is to use your
@ -236,6 +254,13 @@ FreeBSD:
# pkg install monitoring-plugins
Alpine Linux:
# apk add monitoring-plugins
Note: For Alpine you don't need to explicitly add the `monitoring-plugins` package since it is a dependency of
`icinga2` and is pulled automatically.
Depending on which directory your plugins are installed into you may need to
update the global `PluginDir` constant in your [Icinga 2 configuration](04-configuring-icinga-2.md#constants-conf).
This constant is used by the check command definitions contained in the Icinga Template Library
@ -352,6 +377,10 @@ SLES/openSUSE:
$ zypper install vim-icinga2
Alpine Linux:
# apk add icinga2-vim
Ensure that syntax highlighting is enabled e.g. by editing the user's `vimrc`
configuration file:
@ -451,6 +480,13 @@ FreeBSD:
# service mysql-server restart
# mysql_secure_installation
Alpine Linux:
# apk add mariadb
# rc-service mariadb setup
# rc-update add mariadb default
# rc-service mariadb start
#### Installing the IDO modules for MySQL <a id="installing-database-mysql-modules"></a>
The next step is to install the `icinga2-ido-mysql` package using your
@ -473,6 +509,11 @@ FreeBSD:
On FreeBSD the IDO modules for MySQL are included with the icinga2 package
and located at /usr/local/share/icinga2-ido-mysql/schema/mysql.sql
Alpine Linux:
On Alpine Linux the IDO modules for MySQL are included with the `icinga2` package
and located at /usr/share/icinga2-ido-mysql/schema/mysql.sql
> **Note**
>
> The Debian/Ubuntu packages provide a database configuration wizard by
@ -528,6 +569,9 @@ FreeBSD:
# service icinga2 restart
Alpine Linux:
# rc-service icinga2 restart
Continue with the [webserver setup](02-getting-started.md#icinga2-user-interface-webserver).
@ -564,6 +608,13 @@ FreeBSD:
# sysrc postgresql_enable=yes
# service postgresql start
Alpine Linux:
# apk add postgresql
# rc-update add postgresql default
# rc-service postgresql setup
# rc-service postgresql start
#### Installing the IDO modules for PostgreSQL <a id="installing-database-postgresql-modules"></a>
The next step is to install the `icinga2-ido-pgsql` package using your
@ -586,6 +637,11 @@ FreeBSD:
On FreeBSD the IDO modules for PostgreSQL are included with the icinga2 package
and located at /usr/local/share/icinga2-ido-pgsql/schema/pgsql.sql
Alpine Linux:
On Alpine Linux the IDO modules for PostgreSQL are included with the `icinga2` package
and located at /usr/share/icinga2-ido-pgsql/schema/pgsql.sql
> **Note**
>
> Upstream Debian packages provide a database configuration wizard by default.
@ -666,6 +722,10 @@ FreeBSD:
# service icinga2 restart
Alpine Linux:
# rc-service icinga2 restart
Continue with the [webserver setup](02-getting-started.md#icinga2-user-interface-webserver).
### Webserver <a id="icinga2-user-interface-webserver"></a>
@ -704,6 +764,13 @@ FreeBSD (nginx, but you could also use the apache24 package):
# service php-fpm start
# service nginx start
Alpine Linux:
# apk add apache2 php7-apache2
# sed -i -e "s/^#LoadModule rewrite_module/LoadModule rewrite_module/" /etc/apache2/httpd.conf
# rc-update add apache2 default
# rc-service apache2 start
### Firewall Rules <a id="icinga2-user-interface-firewall-rules"></a>
Example:
@ -756,6 +823,10 @@ FreeBSD:
# service icinga2 restart
Alpine Linux:
# rc-service icinga2 restart
### Installing Icinga Web 2 <a id="installing-icingaweb2"></a>
Please consult the [installation documentation](https://github.com/Icinga/icingaweb2/blob/master/doc/02-Installation.md)