Giuseppe Lavagetto has submitted this change and it was merged.

Change subject: monitoring: convert monitor_group to monitoring::group
......................................................................


monitoring: convert monitor_group to monitoring::group

Also, move decommission_monitor_host, which seems useless anyway.

Change-Id: I52461750f38d8bff7da9358654bf45a5feeb44ae
---
M manifests/facilities.pp
M manifests/nagios.pp
M manifests/network.pp
M manifests/nfs.pp
M manifests/role/analytics.pp
M manifests/role/apertium.pp
M manifests/role/cache.pp
M manifests/role/coredb.pp
M manifests/role/cxserver.pp
M manifests/role/elasticsearch.pp
M manifests/role/logstash.pp
M manifests/role/lvs.pp
M manifests/role/mathoid.pp
M manifests/role/mediawiki.pp
M manifests/role/memcached.pp
M manifests/role/nova.pp
M manifests/role/ocg.pp
M manifests/role/openldap.pp
M manifests/role/parsoid.pp
M manifests/role/protoproxy.pp
M manifests/role/rcstream.pp
M manifests/role/redisdb.pp
M manifests/role/swift.pp
M manifests/search.pp
M modules/icinga/manifests/groups/misc.pp
A modules/monitoring/manifests/decommission_host.pp
A modules/monitoring/manifests/group.pp
27 files changed, 121 insertions(+), 87 deletions(-)

Approvals:
  Giuseppe Lavagetto: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/manifests/facilities.pp b/manifests/facilities.pp
index 31be227..373b16d 100644
--- a/manifests/facilities.pp
+++ b/manifests/facilities.pp
@@ -105,7 +105,7 @@
 }
 
 # Nagios monitoring
-@monitor_group { 'pdus':
+@monitoring::group { 'pdus':
     description => 'PDUs',
     }
 
diff --git a/manifests/nagios.pp b/manifests/nagios.pp
index 377435e..547c184 100644
--- a/manifests/nagios.pp
+++ b/manifests/nagios.pp
@@ -136,7 +136,7 @@
     }
 }
 
-define monitor_group ($description, $ensure=present) {
+define monitoring::group ($description, $ensure=present) {
     # Nagios hostgroup instance
     nagios_hostgroup { $title:
         ensure         => $ensure,
@@ -151,29 +151,5 @@
         target            => "${::nagios_config_dir}/puppet_servicegroups.cfg",
         servicegroup_name => $title,
         alias             => $description,
-    }
-}
-define decommission_monitor_host {
-    if defined(Nagios_host[$title]) {
-        # Override the existing resources
-        Nagios_host <| title == $title |> {
-            ensure => absent
-        }
-        Nagios_hostextinfo <| title == $title |> {
-            ensure => absent
-        }
-    }
-    else {
-        # Resources don't exist in Puppet. Remove from Nagios config as well.
-        nagios_host { $title:
-            host_name => $title,
-            ensure    => absent;
-
-        }
-        nagios_hostextinfo { $title:
-            host_name => $title,
-            ensure    => absent;
-
-        }
     }
 }
diff --git a/manifests/network.pp b/manifests/network.pp
index 3b60088..da2e937 100644
--- a/manifests/network.pp
+++ b/manifests/network.pp
@@ -272,11 +272,11 @@
     $snmp_ro_community = $passwords::network::snmp_ro_community
 
     # Nagios monitoring
-    @monitor_group { 'routers':
+    @monitoring::group { 'routers':
         description => 'IP routers',
     }
 
-    @monitor_group { 'storage':
+    @monitoring::group { 'storage':
         description => 'Storage equipment',
     }
 
diff --git a/manifests/nfs.pp b/manifests/nfs.pp
index dbf3d4e..f69cb27 100644
--- a/manifests/nfs.pp
+++ b/manifests/nfs.pp
@@ -1,7 +1,7 @@
 # nfs.pp
 
 # Virtual resource for the monitoring server
-#@monitor_group { "nfs": description => "NFS" }
+#@monitoring::group { "nfs": description => "NFS" }
 
 class nfs::common {
     package { 'nfs-common':
diff --git a/manifests/role/analytics.pp b/manifests/role/analytics.pp
index 3dfcf15..bd46c58 100644
--- a/manifests/role/analytics.pp
+++ b/manifests/role/analytics.pp
@@ -1,6 +1,6 @@
 # analytics servers (RT-1985)
 
-@monitor_group { 'analytics_eqiad': description => 'analytics servers in 
eqiad' }
+@monitoring::group { 'analytics_eqiad': description => 'analytics servers in 
eqiad' }
 
 # == Class role::analytics
 # Base class for all analytics nodes.
diff --git a/manifests/role/apertium.pp b/manifests/role/apertium.pp
index 0d32aab..d189d21 100644
--- a/manifests/role/apertium.pp
+++ b/manifests/role/apertium.pp
@@ -1,7 +1,7 @@
 # vim: set ts=4 et sw=4:
 
 # We do not have monitoring yet
-#@monitor_group { 'apertium_eqiad': description => 'eqiad apertium servers' }
+#@monitoring::group { 'apertium_eqiad': description => 'eqiad apertium 
servers' }
 
 # Skipping production for now
 #class role::apertium::production {}
diff --git a/manifests/role/cache.pp b/manifests/role/cache.pp
index 1bd8fdf..d2c4a9b 100644
--- a/manifests/role/cache.pp
+++ b/manifests/role/cache.pp
@@ -2,51 +2,51 @@
 # cache::varnish role classes
 
 # Virtual resources for the monitoring server
-@monitor_group { 'cache_text_eqiad':
+@monitoring::group { 'cache_text_eqiad':
     description => 'eqiad text Varnish',
 }
-@monitor_group { 'cache_text_esams':
+@monitoring::group { 'cache_text_esams':
     description => 'esams text Varnish',
 }
-@monitor_group { 'cache_text_ulsfo':
+@monitoring::group { 'cache_text_ulsfo':
     description => 'ulsfo text Varnish',
 }
 
-@monitor_group { 'cache_upload_eqiad':
+@monitoring::group { 'cache_upload_eqiad':
     description => 'eqiad upload Varnish',
 }
-@monitor_group { 'cache_upload_esams':
+@monitoring::group { 'cache_upload_esams':
     description => 'esams upload Varnish',
 }
-@monitor_group { 'cache_upload_ulsfo':
+@monitoring::group { 'cache_upload_ulsfo':
     description => 'ulsfo upload Varnish',
 }
 
-@monitor_group { 'cache_bits_eqiad':
+@monitoring::group { 'cache_bits_eqiad':
     description => 'eqiad bits Varnish',
 }
-@monitor_group { 'cache_bits_esams':
+@monitoring::group { 'cache_bits_esams':
     description => 'esams bits Varnish',
 }
-@monitor_group { 'cache_bits_ulsfo':
+@monitoring::group { 'cache_bits_ulsfo':
     description => 'ulsfo bits Varnish',
 }
 
-@monitor_group { 'cache_mobile_eqiad':
+@monitoring::group { 'cache_mobile_eqiad':
     description => 'eqiad mobile Varnish',
 }
-@monitor_group { 'cache_mobile_esams':
+@monitoring::group { 'cache_mobile_esams':
     description => 'esams mobile Varnish',
 }
-@monitor_group { 'cache_mobile_ulsfo':
+@monitoring::group { 'cache_mobile_ulsfo':
     description => 'ulsfo mobile Varnish',
 }
 
-@monitor_group { 'cache_parsoid_eqiad':
+@monitoring::group { 'cache_parsoid_eqiad':
     description => 'Parsoid caches eqiad',
 }
 
-@monitor_group { 'cache_misc_eqiad':
+@monitoring::group { 'cache_misc_eqiad':
     description => 'Misc caches eqiad',
 }
 
diff --git a/manifests/role/coredb.pp b/manifests/role/coredb.pp
index 906c22b..33b8a13 100644
--- a/manifests/role/coredb.pp
+++ b/manifests/role/coredb.pp
@@ -1,7 +1,7 @@
 # Virtual resource for the monitoring server
-@monitor_group { 'es_eqiad': description => 'eqiad External Storage' }
-@monitor_group { 'mysql_eqiad': description => 'eqiad mysql core' }
-@monitor_group { 'mysql_codfw': description => 'codfw mysql core' }
+@monitoring::group { 'es_eqiad': description => 'eqiad External Storage' }
+@monitoring::group { 'mysql_eqiad': description => 'eqiad mysql core' }
+@monitoring::group { 'mysql_codfw': description => 'codfw mysql core' }
 
 ## for describing replication topology
 ## hosts must be added here in addition to site.pp
diff --git a/manifests/role/cxserver.pp b/manifests/role/cxserver.pp
index bdc75ae..0c658ae 100644
--- a/manifests/role/cxserver.pp
+++ b/manifests/role/cxserver.pp
@@ -1,7 +1,7 @@
 # vim: set ts=4 et sw=4:
 
 # We do not have monitoring yet
-#@monitor_group { 'cxserver_eqiad': description => 'eqiad cxserver servers' }
+#@monitoring::group { 'cxserver_eqiad': description => 'eqiad cxserver 
servers' }
 
 # Skipping production for now
 #class role::cxserver::production {}
diff --git a/manifests/role/elasticsearch.pp b/manifests/role/elasticsearch.pp
index 037fd9c..92e1f86 100644
--- a/manifests/role/elasticsearch.pp
+++ b/manifests/role/elasticsearch.pp
@@ -3,10 +3,10 @@
 # This class sets up Elasticsearch configuration in a WMF-specific way.
 #
 
-@monitor_group { 'elasticsearch_eqiad': description => 'eqiad elasticsearch 
servers' }
-@monitor_group { 'elasticsearch_codfw': description => 'codfw elasticsearch 
servers' }
-@monitor_group { 'elasticsearch_esams': description => 'esams elasticsearch 
servers' }
-@monitor_group { 'elasticsearch_ulsfo': description => 'ulsfo elasticsearch 
servers' }
+@monitoring::group { 'elasticsearch_eqiad': description => 'eqiad 
elasticsearch servers' }
+@monitoring::group { 'elasticsearch_codfw': description => 'codfw 
elasticsearch servers' }
+@monitoring::group { 'elasticsearch_esams': description => 'esams 
elasticsearch servers' }
+@monitoring::group { 'elasticsearch_ulsfo': description => 'ulsfo 
elasticsearch servers' }
 
 class role::elasticsearch::config {
     # Config
diff --git a/manifests/role/logstash.pp b/manifests/role/logstash.pp
index 706533b..ddd377a 100644
--- a/manifests/role/logstash.pp
+++ b/manifests/role/logstash.pp
@@ -1,5 +1,5 @@
 # vim:sw=4 ts=4 sts=4 et:
-@monitor_group { 'logstash_eqiad': description => 'eqiad logstash' }
+@monitoring::group { 'logstash_eqiad': description => 'eqiad logstash' }
 
 # == Class: role::logstash
 #
diff --git a/manifests/role/lvs.pp b/manifests/role/lvs.pp
index f8ae8ba..13a2cdc 100644
--- a/manifests/role/lvs.pp
+++ b/manifests/role/lvs.pp
@@ -1,10 +1,10 @@
 # role/lvs.pp
 
-@monitor_group { "lvs": description => "LVS" }
-@monitor_group { "lvs_eqiad": description => "eqiad LVS servers" }
-@monitor_group { "lvs_codfw": description => "codfw LVS servers" }
-@monitor_group { "lvs_ulsfo": description => "ulsfo LVS servers" }
-@monitor_group { "lvs_esams": description => "esams LVS servers" }
+@monitoring::group { "lvs": description => "LVS" }
+@monitoring::group { "lvs_eqiad": description => "eqiad LVS servers" }
+@monitoring::group { "lvs_codfw": description => "codfw LVS servers" }
+@monitoring::group { "lvs_ulsfo": description => "ulsfo LVS servers" }
+@monitoring::group { "lvs_esams": description => "esams LVS servers" }
 
 class role::lvs::balancer {
     system::role { "role::lvs::balancer": description => "LVS balancer" }
diff --git a/manifests/role/mathoid.pp b/manifests/role/mathoid.pp
index 7503b7d..75de55a 100644
--- a/manifests/role/mathoid.pp
+++ b/manifests/role/mathoid.pp
@@ -2,7 +2,7 @@
 
 # TODO: now that other services inhabit service cluster A, move this 
definition in a
 # better place
-@monitor_group { 'sca_eqiad': description => 'Service Cluster A servers' }
+@monitoring::group { 'sca_eqiad': description => 'Service Cluster A servers' }
 
 class role::mathoid::production {
     system::role { 'role::mathoid::production':
diff --git a/manifests/role/mediawiki.pp b/manifests/role/mediawiki.pp
index 57d97e8..b2ce91e 100644
--- a/manifests/role/mediawiki.pp
+++ b/manifests/role/mediawiki.pp
@@ -1,9 +1,9 @@
-@monitor_group { 'appserver_hhvm_eqiad':     description => 'eqiad application 
servers (HHVM)' }
-@monitor_group { 'appserver_eqiad':     description => 'eqiad application 
servers' }
-@monitor_group { 'api_appserver_eqiad': description => 'eqiad API application 
servers' }
-@monitor_group { 'imagescaler_eqiad':   description => 'eqiad image scalers' }
-@monitor_group { 'jobrunner_eqiad':     description => 'eqiad jobrunner 
application servers' }
-@monitor_group { 'videoscaler_eqiad':   description => 'eqiad video scaler' }
+@monitoring::group { 'appserver_hhvm_eqiad':     description => 'eqiad 
application servers (HHVM)' }
+@monitoring::group { 'appserver_eqiad':     description => 'eqiad application 
servers' }
+@monitoring::group { 'api_appserver_eqiad': description => 'eqiad API 
application servers' }
+@monitoring::group { 'imagescaler_eqiad':   description => 'eqiad image 
scalers' }
+@monitoring::group { 'jobrunner_eqiad':     description => 'eqiad jobrunner 
application servers' }
+@monitoring::group { 'videoscaler_eqiad':   description => 'eqiad video 
scaler' }
 
 class role::mediawiki::common {
     include ::standard
diff --git a/manifests/role/memcached.pp b/manifests/role/memcached.pp
index 3209f99..33f8c77 100644
--- a/manifests/role/memcached.pp
+++ b/manifests/role/memcached.pp
@@ -1,7 +1,7 @@
 # vim: noet
 
 # Virtual resource for monitoring server
-@monitor_group { 'memcached_eqiad':
+@monitoring::group { 'memcached_eqiad':
     description => 'eqiad memcached',
 }
 
diff --git a/manifests/role/nova.pp b/manifests/role/nova.pp
index 6ab881a..b0dd226 100644
--- a/manifests/role/nova.pp
+++ b/manifests/role/nova.pp
@@ -425,8 +425,8 @@
 }
 
 # global icinga hostgroups for virt/labs hosts
-@monitor_group { 'virt_eqiad': description => 'eqiad virt servers' }
-@monitor_group { 'virt_esams': description => 'esams virt servers' }
-@monitor_group { 'virt_codfw': description => 'codfw virt servers' }
-@monitor_group { 'virt_ulsfo': description => 'ulsfo virt servers' }
+@monitoring::group { 'virt_eqiad': description => 'eqiad virt servers' }
+@monitoring::group { 'virt_esams': description => 'esams virt servers' }
+@monitoring::group { 'virt_codfw': description => 'codfw virt servers' }
+@monitoring::group { 'virt_ulsfo': description => 'ulsfo virt servers' }
 
diff --git a/manifests/role/ocg.pp b/manifests/role/ocg.pp
index cfa6dc0..f287822 100644
--- a/manifests/role/ocg.pp
+++ b/manifests/role/ocg.pp
@@ -3,7 +3,7 @@
 # Offline content generator for the MediaWiki collection extension
 
 # Virtual resources for the monitoring server
-@monitor_group { 'ocg_eqiad': description => 'offline content generator eqiad' 
}
+@monitoring::group { 'ocg_eqiad': description => 'offline content generator 
eqiad' }
 
 class role::ocg::production (
     $tmpfs_size = '512M', # size of tmpfs filesystem e.g. 512M
diff --git a/manifests/role/openldap.pp b/manifests/role/openldap.pp
index 7db01bc..968a319 100644
--- a/manifests/role/openldap.pp
+++ b/manifests/role/openldap.pp
@@ -1,6 +1,6 @@
 # vim: set ts=4 et sw=4:
 
-@monitor_group { "openldap_corp_mirror_${::site}": description => 'Corp OIT 
LDAP Mirror' }
+@monitoring::group { "openldap_corp_mirror_${::site}": description => 'Corp 
OIT LDAP Mirror' }
 
 class role::openldap::corp {
     include passwords::openldap::corp
diff --git a/manifests/role/parsoid.pp b/manifests/role/parsoid.pp
index c1c9860..456ab5c 100644
--- a/manifests/role/parsoid.pp
+++ b/manifests/role/parsoid.pp
@@ -1,6 +1,6 @@
 # vim: set ts=4 et sw=4:
 
-@monitor_group { 'parsoid_eqiad': description => 'eqiad parsoid servers' }
+@monitoring::group { 'parsoid_eqiad': description => 'eqiad parsoid servers' }
 
 class role::parsoid::common {
     package { [
diff --git a/manifests/role/protoproxy.pp b/manifests/role/protoproxy.pp
index c49cef7..e8fa7af 100644
--- a/manifests/role/protoproxy.pp
+++ b/manifests/role/protoproxy.pp
@@ -187,7 +187,7 @@
 
 }
 
-@monitor_group { 'ssl_eqiad': description => 'eqiad ssl servers' }
-@monitor_group { 'ssl_codfw': description => 'codfw ssl servers' }
-@monitor_group { 'ssl_esams': description => 'esams ssl servers' }
-@monitor_group { 'ssl_ulsfo': description => 'ulsfo ssl servers' }
+@monitoring::group { 'ssl_eqiad': description => 'eqiad ssl servers' }
+@monitoring::group { 'ssl_codfw': description => 'codfw ssl servers' }
+@monitoring::group { 'ssl_esams': description => 'esams ssl servers' }
+@monitoring::group { 'ssl_ulsfo': description => 'ulsfo ssl servers' }
diff --git a/manifests/role/rcstream.pp b/manifests/role/rcstream.pp
index 9ff01b2..bd8baad 100644
--- a/manifests/role/rcstream.pp
+++ b/manifests/role/rcstream.pp
@@ -1,4 +1,4 @@
-@monitor_group { 'rcstream_eqiad': description => 'eqiad rcstream' }
+@monitoring::group { 'rcstream_eqiad': description => 'eqiad rcstream' }
 
 # == Class: role::rcstream
 #
diff --git a/manifests/role/redisdb.pp b/manifests/role/redisdb.pp
index d4db287..75ed631 100644
--- a/manifests/role/redisdb.pp
+++ b/manifests/role/redisdb.pp
@@ -2,7 +2,7 @@
 # db::redis
 
 # Virtual resource for the monitoring server
-@monitor_group { 'redis_eqiad':
+@monitoring::group { 'redis_eqiad':
     description => 'eqiad Redis',
 }
 
diff --git a/manifests/role/swift.pp b/manifests/role/swift.pp
index e136030..8a94de4 100644
--- a/manifests/role/swift.pp
+++ b/manifests/role/swift.pp
@@ -1,4 +1,4 @@
-@monitor_group { 'swift':
+@monitoring::group { 'swift':
     description => 'swift servers',
 }
 
diff --git a/manifests/search.pp b/manifests/search.pp
index f374c64..871910e 100644
--- a/manifests/search.pp
+++ b/manifests/search.pp
@@ -2,7 +2,7 @@
 # vim: set noet :
 
 # Virtual resource for the monitoring server
-@monitor_group { 'lucene': description => 'eqiad search servers' }
+@monitoring::group { 'lucene': description => 'eqiad search servers' }
 
 class lucene {
 
diff --git a/modules/icinga/manifests/groups/misc.pp 
b/modules/icinga/manifests/groups/misc.pp
index 5fd35f4..c1eba82 100644
--- a/modules/icinga/manifests/groups/misc.pp
+++ b/modules/icinga/manifests/groups/misc.pp
@@ -3,24 +3,24 @@
 #
 class icinga::groups::misc {
 
-    @monitor_group { 'misc_eqiad':
+    @monitoring::group { 'misc_eqiad':
         description => 'eqiad misc servers'
     }
 
-    @monitor_group { 'misc_codfw':
+    @monitoring::group { 'misc_codfw':
         description => 'codfw misc servers'
     }
 
-    @monitor_group { 'misc_esams':
+    @monitoring::group { 'misc_esams':
         description => 'esams misc servers'
     }
 
-    @monitor_group { 'misc_ulsfo':
+    @monitoring::group { 'misc_ulsfo':
         description => 'ulsfo misc servers'
     }
 
     # This needs to be consolited in the virt cluster probably
-    @monitor_group { 'labsnfs_eqiad':
+    @monitoring::group { 'labsnfs_eqiad':
         description => 'eqiad labsnfs server servers'
     }
 }
diff --git a/modules/monitoring/manifests/decommission_host.pp 
b/modules/monitoring/manifests/decommission_host.pp
new file mode 100644
index 0000000..8f16ae5
--- /dev/null
+++ b/modules/monitoring/manifests/decommission_host.pp
@@ -0,0 +1,25 @@
+#TODO: this should probably go away. The cleanup scripts in puppet should do 
this by themselves.
+define decommission_monitor_host {
+    if defined(Nagios_host[$title]) {
+        # Override the existing resources
+        Nagios_host <| title == $title |> {
+            ensure => absent
+        }
+        Nagios_hostextinfo <| title == $title |> {
+            ensure => absent
+        }
+    }
+    else {
+        # Resources don't exist in Puppet. Remove from Nagios config as well.
+        nagios_host { $title:
+            host_name => $title,
+            ensure    => absent;
+
+        }
+        nagios_hostextinfo { $title:
+            host_name => $title,
+            ensure    => absent;
+
+        }
+    }
+}
diff --git a/modules/monitoring/manifests/group.pp 
b/modules/monitoring/manifests/group.pp
new file mode 100644
index 0000000..d13094b
--- /dev/null
+++ b/modules/monitoring/manifests/group.pp
@@ -0,0 +1,33 @@
+# == Define monitoring::group
+# Define host groups and service groups in the monitoring system.
+# Note that these will be applied by naginator and are the only
+# resource we don't manage via naggen2.
+#
+# == Parameters
+# [*description*]
+# Plain-text description of the group.
+#
+# [*config_dir*]
+# Nagios config dir, by default '/etc/nagios'
+#
+define monitoring::group (
+    $description,
+    $ensure=present,
+    $config_dir = '/etc/nagios'
+    ) {
+    # Nagios hostgroup instance
+    nagios_hostgroup { $title:
+        ensure         => $ensure,
+        target         => "${config_dir}/puppet_hostgroups.cfg",
+        hostgroup_name => $title,
+        alias          => $description,
+    }
+
+    # Nagios servicegroup instance
+    nagios_servicegroup { $title:
+        ensure            => $ensure,
+        target            => "${config_dir}/puppet_servicegroups.cfg",
+        servicegroup_name => $title,
+        alias             => $description,
+    }
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I52461750f38d8bff7da9358654bf45a5feeb44ae
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: Filippo Giunchedi <fgiunch...@wikimedia.org>
Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to