mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-27 07:34:15 +02:00
parent
76fa37f822
commit
ee5b0afd28
103
INSTALL.md
103
INSTALL.md
@ -4,7 +4,7 @@ The recommended way of installing Icinga 2 is to use packages. The Icinga
|
||||
project provides both release and development packages for a number
|
||||
of operating systems.
|
||||
|
||||
Please check the documentation in the doc/ directory for a current list
|
||||
Please check the documentation in the [doc/](doc/) directory for a current list
|
||||
of available packages and detailed installation instructions.
|
||||
|
||||
There are a number of known caveats when installing from source such as
|
||||
@ -21,27 +21,27 @@ parentheses):
|
||||
* cmake
|
||||
* GNU make (make)
|
||||
* C++ compiler (gcc-c++ on RHEL, build-essential on Debian)
|
||||
* OpenSSL library and header files (openssl-devel on RHEL, libssl-dev
|
||||
on Debian)
|
||||
* Boost library and header files (boost-devel on RHEL, libboost-all-dev
|
||||
on Debian)
|
||||
* OpenSSL library and header files (openssl-devel on RHEL, libssl-dev on Debian)
|
||||
* Boost library and header files (boost-devel on RHEL, libboost-all-dev on Debian)
|
||||
* GNU bison (bison)
|
||||
* GNU flex (flex) >= 2.5.35
|
||||
* Python (python-devel on RHEL, python-dev on Debian)
|
||||
* recommended: libexecinfo on FreeBSD
|
||||
* optional: MySQL (mysql-devel on RHEL, libmysqlclient-dev on Debian)
|
||||
* optional: PostgreSQL (postgresql-devel on RHEL, libpq-dev on Debian)
|
||||
|
||||
Note: RHEL5 ships an ancient flex version. Updated packages are available for
|
||||
example from the repoforge buildtools repository.
|
||||
|
||||
http://mirror.hs-esslingen.de/repoforge/redhat/el5/en/{i386,x86_64}/buildtools/
|
||||
* x86: http://mirror.hs-esslingen.de/repoforge/redhat/el5/en/i386/buildtools/
|
||||
* x86\_64: http://mirror.hs-esslingen.de/repoforge/redhat/el5/en/x86_64/buildtools/
|
||||
|
||||
### User Requirements
|
||||
|
||||
By default Icinga will run as user 'icinga' and group 'icinga'. Additionally the
|
||||
external command pipe and livestatus features require a dedicated command group
|
||||
'icingacmd'. You can choose your own user/group names and pass them to cmake
|
||||
using the ICINGA2_USER, ICINGA2_GROUP and ICINGA2_COMMAND_GROUP variables.
|
||||
'icingacmd'. You can choose your own user/group names and pass them to CMake
|
||||
using the `ICINGA2_USER`, `ICINGA2_GROUP` and `ICINGA2_COMMAND_GROUP` variables.
|
||||
|
||||
# groupadd icinga
|
||||
# groupadd icingacmd
|
||||
@ -64,31 +64,49 @@ that there are no local modifications:
|
||||
|
||||
$ git status
|
||||
|
||||
### Release Checklist
|
||||
|
||||
Here's a short check-list for releases:
|
||||
|
||||
* Update the .mailmap and AUTHORS files
|
||||
Update the [.mailmap](.mailmap) and [AUTHORS](AUTHORS) files
|
||||
|
||||
$ git log --use-mailmap | grep ^Author: | cut -f2- -d' ' | sort | uniq > AUTHORS
|
||||
* Bump the version in icinga2.spec.
|
||||
* Update the ChangeLog and doc/1-about.md files.
|
||||
* Commit these changes to the "master" branch.
|
||||
|
||||
Bump the version in icinga2.spec.
|
||||
Update the [ChangeLog](ChangeLog) and [doc/1-about.md](doc/1-about.md) files.
|
||||
Commit these changes to the "master" branch.
|
||||
|
||||
$ git commit -v -a -m "Release version <VERSION>"
|
||||
* Create a signed tag (tags/v<VERSION>) and push it.
|
||||
GB: $ git tag -u EE8E0720 -m "Version <VERSION>" v<VERSION>
|
||||
MF: $ git tag -u D14A1F16 -m "Version <VERSION>" v<VERSION>
|
||||
|
||||
Create a signed tag (tags/v<VERSION>).
|
||||
|
||||
GB:
|
||||
|
||||
$ git tag -u EE8E0720 -m "Version <VERSION>" v<VERSION>
|
||||
MF:
|
||||
|
||||
$ git tag -u D14A1F16 -m "Version <VERSION>" v<VERSION>
|
||||
|
||||
Push the tag.
|
||||
|
||||
$ git push --tags
|
||||
* Merge the "master" branch into the "support/2.1" branch (using --ff-only).
|
||||
|
||||
Merge the "master" branch into the "support/2.1" branch (using --ff-only).
|
||||
|
||||
$ git checkout support/2.1
|
||||
$ git merge --ff-only master
|
||||
$ git push origin support/2.1
|
||||
|
||||
Note: CMake determines the Icinga 2 version number using "git describe" if the
|
||||
Note: CMake determines the Icinga 2 version number using `git describe` if the
|
||||
source directory is contained in a Git repository. Otherwise the version number
|
||||
is extracted from the icinga2.spec file. This behavior can be overridden by
|
||||
creating a file called "icinga-version.h.force" in the source directory.
|
||||
Alternatively the -DICINGA2_GIT_VERSION_INFO=ON option for CMake can be used to
|
||||
disable the usage of "git describe".
|
||||
is extracted from the [icinga2.spec](icinga2.spec) file. This behavior can be overridden by
|
||||
creating a file called `icinga-version.h.force` in the source directory.
|
||||
Alternatively the `-DICINGA2_GIT_VERSION_INFO=ON option` for CMake can be used to
|
||||
disable the usage of `git describe`.
|
||||
|
||||
Use "git archive" to build the release tarball:
|
||||
### Build Tarball
|
||||
|
||||
Use `git archive` to build the release tarball:
|
||||
|
||||
$ VERSION=2.1.0
|
||||
$ git archive --format=tar --prefix=icinga2-$VERSION/ tags/v$VERSION | gzip >icinga2-$VERSION.tar.gz
|
||||
@ -109,29 +127,29 @@ $ cmake ..
|
||||
$ make
|
||||
$ make install
|
||||
|
||||
You can specify an alternative installation prefix using -DCMAKE_INSTALL_PREFIX:
|
||||
You can specify an alternative installation prefix using `-DCMAKE_INSTALL_PREFIX`:
|
||||
|
||||
$ cmake .. -DCMAKE_INSTALL_PREFIX=/tmp/icinga2
|
||||
|
||||
In addition to CMAKE_INSTALL_PREFIX the following Icinga-specific cmake
|
||||
In addition to `CMAKE_INSTALL_PREFIX` the following Icinga-specific cmake
|
||||
variables are supported:
|
||||
|
||||
- ICINGA2_USER: The user Icinga 2 should run as; defaults to "icinga"
|
||||
- ICINGA2_GROUP: The group Icinga 2 should run as; defaults to "icinga"
|
||||
- ICINGA2_COMMAND_USER: The command user Icinga 2 should use; defaults to "icinga"
|
||||
- ICINGA2_GIT_VERSION_INFO: Whether to use Git to determine the version number; defaults to "ON"
|
||||
- ICINGA2_COMMAND_GROUP: The command group Icinga 2 should use; defaults to "icingacmd"
|
||||
- ICINGA2_PLUGINDIR: The path for the Monitoring Plugins project binaries; defaults to "/usr/lib/nagios/plugins"
|
||||
- ICINGA2_RUNDIR: The location of the "run" directory; defaults to CMAKE_INSTALL_LOCALSTATEDIR/run
|
||||
- CMAKE_INSTALL_SYSCONFDIR: The configuration directory; defaults to CMAKE_INSTALL_PREFIX/etc
|
||||
- ICINGA2_SYSCONFIGFILE: Where to put the config file the initscript/systemd pulls it's dirs from;
|
||||
defaults to CMAKE_INSTALL_PREFIX/etc/sysconfig/icinga2
|
||||
- CMAKE_INSTALL_LOCALSTATEDIR: The state directory; defaults to CMAKE_INSTALL_PREFIX/var
|
||||
- USE_SYSTEMD=ON|OFF: Use systemd or a classic SysV initscript; defaults to OFF
|
||||
- INSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON|OFF Force install both the systemd service definition file
|
||||
and the SysV initscript in parallel, regardless of how USE_SYSTEMD is set.
|
||||
- `ICINGA2_USER`: The user Icinga 2 should run as; defaults to `icinga`
|
||||
- `ICINGA2_GROUP`: The group Icinga 2 should run as; defaults to `icinga`
|
||||
- `ICINGA2_COMMAND_USER`: The command user Icinga 2 should use; defaults to `icinga`
|
||||
- `ICINGA2_GIT_VERSION_INFO`: Whether to use Git to determine the version number; defaults to `ON`
|
||||
- `ICINGA2_COMMAND_GROUP`: The command group Icinga 2 should use; defaults to `icingacmd`
|
||||
- `ICINGA2_PLUGINDIR`: The path for the Monitoring Plugins project binaries; defaults to `/usr/lib/nagios/plugins`
|
||||
- `ICINGA2_RUNDIR`: The location of the "run" directory; defaults to `CMAKE_INSTALL_LOCALSTATEDIR/run`
|
||||
- `CMAKE_INSTALL_SYSCONFDIR`: The configuration directory; defaults to `CMAKE_INSTALL_PREFIX/etc`
|
||||
- `ICINGA2_SYSCONFIGFILE`: Where to put the config file the initscript/systemd pulls it's dirs from;
|
||||
defaults to `CMAKE_INSTALL_PREFIX/etc/sysconfig/icinga2`
|
||||
- `CMAKE_INSTALL_LOCALSTATEDIR`: The state directory; defaults to `CMAKE_INSTALL_PREFIX/var`
|
||||
- `USE_SYSTEMD=ON|OFF`: Use systemd or a classic SysV initscript; defaults to `OFF`
|
||||
- `INSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON|OFF` Force install both the systemd service definition file
|
||||
and the SysV initscript in parallel, regardless of how `USE_SYSTEMD` is set.
|
||||
Only use this for special packaging purposes and if you know what you are doing.
|
||||
Defaults to OFF
|
||||
Defaults to `OFF`.
|
||||
|
||||
### Building Icinga 2 RPMs
|
||||
|
||||
@ -166,12 +184,13 @@ Icinga 2 can be started as daemon using the provided init script:
|
||||
Usage: /etc/init.d/icinga2 {start|stop|restart|reload|checkconfig|status}
|
||||
|
||||
Or if your distribution uses systemd:
|
||||
|
||||
# systemctl {start|stop|reload|status|enable|disable} icinga2.service
|
||||
|
||||
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/ directory.
|
||||
configuration format is explained in detail in the [doc/](doc/) directory.
|
||||
|
||||
By default "make install" installs example configuration files in
|
||||
/usr/local/etc/icinga2 unless you have specified a different prefix or
|
||||
By default `make install` installs example configuration files in
|
||||
`/usr/local/etc/icinga2` unless you have specified a different prefix or
|
||||
sysconfdir.
|
||||
|
Loading…
x
Reference in New Issue
Block a user