- Icinga 2 – Monitoring automatisiert mit Puppet Teil 1: Installation
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 2: Features
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 3: Plugins
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 4: Konfiguration I
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 5: Konfiguration II
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 6: Agenten
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 7: Objekte aus Hiera erzeugen
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 8: Integration von Icinga Web 2
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 9: Profile
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 10: Profile Part II
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 11: Profile Part III
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 12: Profile Part IV
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 13: Profile Part V
- Icinga 2 – Monitoring automatisiert mit Puppet Teil 14: Profile Part VI
Im heutigen Teil dieser Reihe, fügen wir den ausstehenden Code zur Konfiguration von Nginx als Webserver für Icinga Web 2 hinzu. Neben den benötigten Nginx-Ressources, vor allem der Umleitung auf den PHP-FPM, ist darauf zu achten, dass Nginx vor der Klasse icingaweb2 und damit vor dem Paket icingaweb2 abzuarbeiten ist. Wird dies nich beachtet installiert das icingaweb2-Paket automatisch den Apache als Abhängigkeit und man hätte zwei Webserver bei sich auf dem Icinga-2-Server.
Damit das Icinga-Web-2-Modul für seine Konfigurationsdateien den korrekten Benutzer verwenden kann, ziehen wir diesen nach der Abarbeitung der Klasse nginx aus dessen Modul.
[...] if $web_server == 'nginx' { # # Nginx # $manage_package = true Class['nginx'] -> Class['icingaweb2'] class { '::nginx': manage_repo => false, server_purge => true, confd_purge => true, } $web_conf_user = $::nginx::daemon_user nginx::resource::server { 'icingaweb2': server_name => [ 'localhost' ], ssl => false, index_files => [], use_default_location => false, } nginx::resource::location { 'icingaweb2': location => '~ ^/icingaweb2(.+)?', location_alias => '/usr/share/icingaweb2/public', try_files => ['$1', '$uri', '$uri/', '/icingaweb2/index.php$is_args$args'], index_files => ['index.php'], server => 'icingaweb2', ssl => false, } nginx::resource::location { 'icingaweb2_index': location => '~ ^/icingaweb2/index\.php(.*)$', server => 'icingaweb2', ssl => false, index_files => [], fastcgi => '127.0.0.1:9000', fastcgi_index => 'index.php', fastcgi_param => { 'SCRIPT_FILENAME' => '/usr/share/icingaweb2/public/index.php', 'ICINGAWEB_CONFIGDIR' => '/etc/icingaweb2', 'REMOTE_USER' => '$remote_user', }, } } else { [...]
Beim Nginx selbst werden alle von der Standard-Installation kommenden virtuellen Hosts (server_purge => true) und sonstigen Konfigurationsdateien entfernt. Der Artikel der kommenden Woche schließt diesen Abschnitt über eine komplexere Konfiguration vorerst ab. Dort wird dann der noch fehlende Code präsentiert, der einen Apache-Webserver zum Ausliefern von Icinga Web 2 verwendet.