]> granicus.if.org Git - icinga2/commitdiff
Docs: Add instructions for Alpine Linux
authorFrancesco Colista <fcolista@alpinelinux.org>
Thu, 10 Aug 2017 13:29:22 +0000 (15:29 +0200)
committerMichael Friedrich <michael.friedrich@icinga.com>
Fri, 11 Aug 2017 11:32:25 +0000 (13:32 +0200)
refs #5491

Signed-off-by: Michael Friedrich <michael.friedrich@icinga.com>
INSTALL.md
doc/02-getting-started.md

index 310c262ba9d0d112f596d00c85dde4f2eddf114b..dfe7c9ea7c57d498f52c329fc3bd1a8f90b3e05a 100644 (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.
index 7b98683bac4c8e11501ec7d3b07712dd08130628..2529726c30fe2b1fd3d60360acceee9bb024cc7d 100644 (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)