Paladox has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/374046 )

Change subject: Fix director install
......................................................................


Fix director install

Change-Id: Ie5fa164dbeccd8f7efee406245e18f6b61b58479
---
M manifests/init.pp
M manifests/plugins.pp
M manifests/web.pp
A templates/api-users.conf.erb
A templates/config.ini.erb
R templates/gerrit-icinga.wmflabs.org.erb
A templates/kickstart.ini.erb
A templates/zones.conf.erb
8 files changed, 107 insertions(+), 50 deletions(-)

Approvals:
  Paladox: Verified; Looks good to me, approved



diff --git a/manifests/init.pp b/manifests/init.pp
index bfc7bdb..c56e708 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -16,6 +16,7 @@
     $icinga_ido_user_name = hiera('icinga_ido_user_name'),
     $icinga_ido_password = hiera('icinga_ido_password'),
     $os = hiera('icinga_apt_dist'),
+    $icinga_api_password = hiera('icinga_api_password'),
 ) {
     apt::repository { 'icinga2':
         uri        => 'http://packages.icinga.com/debian',
@@ -69,82 +70,98 @@
     }
 
     file { '/etc/icinga2/constants.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/constants.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
+        notify  => Base::Service_unit['icinga2'],
+    }
+
+    file { '/etc/icinga2/zones.conf':
+        ensure  => present,
+        content => template('icinga2/zones.conf.erb'),
+        owner   => 'root',
+        group   => 'root',
+        notify  => Base::Service_unit['icinga2'],
+    }
+
+    file { '/etc/icinga2/conf.d/api-users.conf':
+        ensure  => present,
+        content => template('icinga2/api-users.conf.erb'),
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/apt.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/apt.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/commands.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/commands.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/downtimes.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/downtimes.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
-        notify => Base::Service_unit['icinga2'],
+        owner   => 'root',
+        group   => 'root',
+        notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/groups.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/groups.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
-        notify => Base::Service_unit['icinga2'],
+        owner   => 'root',
+        group   => 'root',
+        notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/hosts.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/hosts.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/notifications.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/notifications.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/satellite.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/satellite.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/services.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/services.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/templates.conf':
-        ensure => present,
+        ensure  => present,
         content => template('icinga2/templates.conf.erb'),
-        owner  => 'root',
-        group  => 'root',
+        owner   => 'root',
+        group   => 'root',
         notify  => Base::Service_unit['icinga2'],
     }
 
@@ -153,7 +170,7 @@
         source => 'puppet:///modules/icinga2/timeperiods.conf',
         owner  => 'root',
         group  => 'root',
-        notify  => Base::Service_unit['icinga2'],
+        notify => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/conf.d/users.conf':
@@ -161,7 +178,7 @@
         source => 'puppet:///modules/icinga2/users.conf',
         owner  => 'root',
         group  => 'root',
-        notify  => Base::Service_unit['icinga2'],
+        notify => Base::Service_unit['icinga2'],
     }
 
     file { '/etc/icinga2/scripts/mail-host-notification.sh':
@@ -259,10 +276,4 @@
         group  => 'www-data',
         mode   => '2755',
     }
-
-    # Purge unmanaged nagios_host and nagios_services resources
-    # This will only happen for non exported resources, that is resources that
-    # are declared by the icinga host itself
-    resources { 'nagios_host': purge => true, }
-    resources { 'nagios_service': purge => true, }
 }
diff --git a/manifests/plugins.pp b/manifests/plugins.pp
index 9a312d2..32dca10 100644
--- a/manifests/plugins.pp
+++ b/manifests/plugins.pp
@@ -12,24 +12,28 @@
         group  => 'root',
         mode   => '0755',
     }
+
     file { '/usr/lib/nagios/plugins':
         ensure => directory,
         owner  => 'root',
         group  => 'root',
         mode   => '0755',
     }
+
     file { '/usr/lib/nagios/plugins/eventhandlers':
         ensure => directory,
         owner  => 'root',
         group  => 'root',
         mode   => '0755',
     }
+
     file { '/etc/nagios-plugins':
         ensure => directory,
         owner  => 'root',
         group  => 'root',
         mode   => '0755',
     }
+
     # TODO: Purge this directoy instead of populating it is probably not very
     # future safe. We should be populating it instead
     file { '/etc/nagios-plugins/config':
diff --git a/manifests/web.pp b/manifests/web.pp
index 8125ad4..0e78b19 100644
--- a/manifests/web.pp
+++ b/manifests/web.pp
@@ -15,22 +15,27 @@
     $director_db_name = hiera('director_db_name'),
     $director_user_name = hiera('director_user_name'),
     $director_password = hiera('director_password'),
+    $icinga_api_password = hiera('icinga_api_password'),
 ) {
     include ::icinga2
 
     package { [ 'icingaweb2', 'icingaweb2-module-monitoring',
-                'icingaweb2-module-doc', 'icingacli' ] :
+                'icingaweb2-module-doc', 'icingaweb2-module-director',
+                'icingacli' ] :
         ensure => present,
         require => Apt::Repository['icinga2'],
     }
 
     include ::apache
+
     if os_version('debian == jessie') {
         include ::apache::mod::php5
     }
+
     if os_version('debian >= stretch') {
         include ::apache::mod::php7
     }
+
     include ::apache::mod::ssl
     include ::apache::mod::headers
     include ::apache::mod::cgi
@@ -39,6 +44,7 @@
       proto => 'tcp',
       port  => 443,
     }
+
     ferm::service { 'icinga2-http':
       proto => 'tcp',
       port  => 80,
@@ -47,6 +53,7 @@
     if os_version('debian >= stretch') {
         require_package('php7.0')
         require_package('php-dev')
+        require_package('php-curl')
         require_package('php-imagick')
         require_package('php-gd')
         require_package('php-json')
@@ -56,6 +63,7 @@
         require_package('php-ldap')
     } else {
         require_package('php5')
+        require_package('php5-curl')
         require_package('php5-dev')
         require_package('php5-imagick')
         require_package('php5-gd')
@@ -94,6 +102,20 @@
         group  => 'icingaweb2',
     }
 
+    file { '/etc/icingaweb2/modules/director/config.ini':
+        ensure => present,
+        content => template('icinga2/config.ini.erb'),
+        owner  => 'www-data',
+        group  => 'icingaweb2',
+    }
+
+    file { '/etc/icingaweb2/modules/director/kickstart.ini':
+        ensure => present,
+        content => template('icinga2/kickstart.ini.erb'),
+        owner  => 'www-data',
+        group  => 'icingaweb2',
+    }
+
     file { '/etc/icingaweb2/modules/monitoring/backends.ini':
         ensure => present,
         content => template('icinga2/backends.ini.erb'),
@@ -114,9 +136,6 @@
         owner  => 'www-data',
         group  => 'icingaweb2',
     }
-
-    include ::passwords::ldap::wmf_cluster
-    $proxypass = $passwords::ldap::wmf_cluster::proxypass
 
     # install the Icinga Apache site
     include ::apache::mod::rewrite
@@ -145,11 +164,6 @@
     #}
 
     apache::site { 'gerrit-icinga.wmflabs.org':
-        content => template('icinga2/icinga.wmflabs.org.erb'),
+        content => template('icinga2/gerrit-icinga.wmflabs.org.erb'),
     }
-
-    file { '/etc/apache2/conf.d/icinga2.conf':
-        ensure => absent,
-    }
-
 }
diff --git a/templates/api-users.conf.erb b/templates/api-users.conf.erb
new file mode 100644
index 0000000..43c2c19
--- /dev/null
+++ b/templates/api-users.conf.erb
@@ -0,0 +1,9 @@
+/**
+ * The APIUser objects are used for authentication against the API.
+ */
+object ApiUser "root" {
+  password = "<%= @icinga_api_password %>"
+  // client_cn = ""
+
+  permissions = [ "*" ]
+}
diff --git a/templates/config.ini.erb b/templates/config.ini.erb
new file mode 100644
index 0000000..ef128e5
--- /dev/null
+++ b/templates/config.ini.erb
@@ -0,0 +1,2 @@
+[db]
+resource = "director"
diff --git a/templates/icinga.wmflabs.org.erb 
b/templates/gerrit-icinga.wmflabs.org.erb
similarity index 100%
rename from templates/icinga.wmflabs.org.erb
rename to templates/gerrit-icinga.wmflabs.org.erb
diff --git a/templates/kickstart.ini.erb b/templates/kickstart.ini.erb
new file mode 100644
index 0000000..b13184d
--- /dev/null
+++ b/templates/kickstart.ini.erb
@@ -0,0 +1,6 @@
+[config]
+endpoint = gerrit-mysql.git.eqiad.wmflabs
+; host = 127.0.0.1
+port = 5665
+username = root
+password = <%= @icinga_api_password %>
diff --git a/templates/zones.conf.erb b/templates/zones.conf.erb
new file mode 100644
index 0000000..19e9562
--- /dev/null
+++ b/templates/zones.conf.erb
@@ -0,0 +1,11 @@
+/*
+ * Generated by Icinga 2 node setup commands
+ * on 2017-08-20 11:20:59 +0000
+ */
+
+object Endpoint NodeName {
+}
+
+object Zone ZoneName {
+        endpoints = [ NodeName ]
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/374046
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie5fa164dbeccd8f7efee406245e18f6b61b58479
Gerrit-PatchSet: 2
Gerrit-Project: labs/icinga2
Gerrit-Branch: master
Gerrit-Owner: Paladox <[email protected]>
Gerrit-Reviewer: Paladox <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to