Alexandros Kosiaris has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/392564 )

Change subject: ganeti: create profiles, split monitoring/firewall classes
......................................................................


ganeti: create profiles, split monitoring/firewall classes

Splits the single role class into 3 separate profiles, base
firewall and monitoring.

Removes style violations.

Change-Id: Ic930b7e63644acc74aa6b803a9360628803dc782
---
M hieradata/role/common/ganeti.yaml
R modules/profile/files/ganeti/id_dsa.pub
A modules/profile/manifests/ganeti.pp
M modules/role/manifests/ganeti.pp
4 files changed, 116 insertions(+), 101 deletions(-)

Approvals:
  Alexandros Kosiaris: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/hieradata/role/common/ganeti.yaml 
b/hieradata/role/common/ganeti.yaml
index b98d368..5337da3 100644
--- a/hieradata/role/common/ganeti.yaml
+++ b/hieradata/role/common/ganeti.yaml
@@ -1,6 +1,6 @@
 profile::base::ssh_server_settings:
   authorized_keys_file: /etc/ssh/userkeys/%u /etc/ssh/userkeys/%u.d/cumin 
/etc/ssh/userkeys/%u.d/ganeti
-ganeti::ganeti01.svc.codfw.wmnet::nodes:
+profile::ganeti::ganeti01.svc.codfw.wmnet::nodes:
   - ganeti2001.codfw.wmnet
   - ganeti2002.codfw.wmnet
   - ganeti2003.codfw.wmnet
@@ -9,7 +9,7 @@
   - ganeti2006.codfw.wmnet
   - ganeti2007.codfw.wmnet
   - ganeti2008.codfw.wmnet
-ganeti::ganeti01.svc.eqiad.wmnet::nodes:
+profile::ganeti::ganeti01.svc.eqiad.wmnet::nodes:
   - ganeti1001.eqiad.wmnet
   - ganeti1002.eqiad.wmnet
   - ganeti1003.eqiad.wmnet
diff --git a/modules/role/files/ganeti/id_dsa.pub 
b/modules/profile/files/ganeti/id_dsa.pub
similarity index 100%
rename from modules/role/files/ganeti/id_dsa.pub
rename to modules/profile/files/ganeti/id_dsa.pub
diff --git a/modules/profile/manifests/ganeti.pp 
b/modules/profile/manifests/ganeti.pp
new file mode 100644
index 0000000..df41173
--- /dev/null
+++ b/modules/profile/manifests/ganeti.pp
@@ -0,0 +1,111 @@
+class profile::ganeti (
+    # Interpolate the ganeti_cluster fact to get the list of nodes in a
+    # cluster
+    $ganeti_nodes = hiera("profile::ganeti::${::ganeti_cluster}::nodes"),
+) {
+
+    class { '::ganeti': }
+
+    # Ganeti hosts have KSM enabled. So get stats about it
+    diamond::collector { 'KSM': }
+
+    # Ganeti needs intracluster SSH root access
+    ssh::userkey { 'root-ganeti':
+        ensure => present,
+        user   => 'root',
+        skey   => 'ganeti',
+        source => 'puppet:///modules/profile/ganeti/id_dsa.pub',
+    }
+
+    # And the private key
+    file { '/root/.ssh/id_dsa':
+        ensure    => present,
+        owner     => 'root',
+        group     => 'root',
+        mode      => '0400',
+        content   => secret('ganeti/id_dsa'),
+        show_diff => false,
+    }
+    # This is here for completeness
+    file { '/root/.ssh/id_dsa.pub':
+        ensure => present,
+        owner  => 'root',
+        group  => 'root',
+        mode   => '0400',
+        source => 'puppet:///modules/profile/ganeti/id_dsa.pub',
+    }
+
+    # If ganeti_cluster fact is not defined, the node has not been added to a
+    # cluster yet, so don't monitor and don't setup a firewall.
+    if $facts['ganeti_cluster'] {
+
+        # Monitoring
+        nrpe::monitor_service{ 'ganeti-noded':
+            description  => 'ganeti-noded running',
+            nrpe_command => '/usr/lib/nagios/plugins/check_procs -w 1:2 -c 1:2 
-u root -C ganeti-noded'
+        }
+
+        nrpe::monitor_service{ 'ganeti-confd':
+            description  => 'ganeti-confd running',
+            nrpe_command => '/usr/lib/nagios/plugins/check_procs -w 1:1 -c 1:1 
-u gnt-confd -C ganeti-confd'
+        }
+
+        nrpe::monitor_service{ 'ganeti-mond':
+            description  => 'ganeti-mond running',
+            nrpe_command => '/usr/lib/nagios/plugins/check_procs -w 1:1 -c 1:1 
-u root -C ganeti-mond'
+        }
+
+        # Firewalling
+        $ganeti_ferm_nodes = join($ganeti_nodes, ' ')
+
+        # Same ganeti actions require SSH
+        ferm::service { 'ganeti_ssh_cluster':
+            proto  => 'tcp',
+            port   => 'ssh',
+            srange => "@resolve((${ganeti_ferm_nodes}))",
+        }
+
+        # RAPI is the API of ganeti
+        ferm::service { 'ganeti_rapi_cluster':
+            proto  => 'tcp',
+            port   => 5080,
+            srange => "@resolve((${ganeti_ferm_nodes}))",
+        }
+
+        # Ganeti noded is responsible for all cluster/node actions
+        ferm::service { 'ganeti_noded_cluster':
+            proto  => 'tcp',
+            port   => 1811,
+            srange => "@resolve((${ganeti_ferm_nodes}))",
+        }
+
+        # Ganeti confd provides a HA and fast way to query cluster 
configuration
+        ferm::service { 'ganeti_confd_cluster':
+            proto  => 'udp',
+            port   => 1814,
+            srange => "@resolve((${ganeti_ferm_nodes}))",
+        }
+
+        # Ganeti mond is the monitoring daemon. Data is available via port 1815
+        ferm::service { 'ganeti_mond_cluster':
+            proto  => 'tcp',
+            port   => 1815,
+            srange => "@resolve((${ganeti_ferm_nodes}))",
+        }
+
+        # DRBD is used for HA of disk images. Port range for ganeti is
+        # 11000-14999
+        ferm::service { 'ganeti_drbd':
+            proto  => 'tcp',
+            port   => '11000:14999',
+            srange => "@resolve((${ganeti_ferm_nodes}))",
+        }
+
+        # Migration is done over TCP port
+        ferm::service { 'ganeti_migration':
+            proto  => 'tcp',
+            port   => 8102,
+            srange => "@resolve((${ganeti_ferm_nodes}))",
+        }
+    }
+}
diff --git a/modules/role/manifests/ganeti.pp b/modules/role/manifests/ganeti.pp
index 0d4075f..b43902a 100644
--- a/modules/role/manifests/ganeti.pp
+++ b/modules/role/manifests/ganeti.pp
@@ -1,107 +1,11 @@
 # Role classes for ganeti
 class role::ganeti {
-    include ::standard
-    include ::ganeti
-    # Ganeti hosts have KSM enabled. So get stats about it
-    diamond::collector { 'KSM': }
 
     system::role { 'ganeti':
         description => 'Ganeti Node',
     }
 
-    # Ganeti needs intracluster SSH root access
-    ssh::userkey { 'root-ganeti':
-        ensure => present,
-        user   => 'root',
-        skey   => 'ganeti',
-        source => 'puppet:///modules/role/ganeti/id_dsa.pub',
-    }
-
-    # And the private key
-    file { '/root/.ssh/id_dsa':
-        ensure    => present,
-        owner     => 'root',
-        group     => 'root',
-        mode      => '0400',
-        content   => secret('ganeti/id_dsa'),
-        show_diff => false,
-    }
-    # This is here for completeness
-    file { '/root/.ssh/id_dsa.pub':
-        ensure => present,
-        owner  => 'root',
-        group  => 'root',
-        mode   => '0400',
-        source => 'puppet:///modules/role/ganeti/id_dsa.pub',
-    }
-
-    # If ganeti_cluster fact is not defined, the node has not been added to a
-    # cluster yet, so don't monitor and don't setup a firewall
-    if $::ganeti_cluster {
-        include ::base::firewall
-        # Interpolate the ganeti_cluster fact to get the list of nodes in a
-        # cluster
-        $ganeti_nodes = hiera("ganeti::${::ganeti_cluster}::nodes")
-        $ganeti_ferm_nodes = join($ganeti_nodes, ' ')
-
-        # Same ganeti actions require SSH
-        ferm::service { 'ganeti_ssh_cluster':
-            proto  => 'tcp',
-            port   => 'ssh',
-            srange => "@resolve((${ganeti_ferm_nodes}))",
-        }
-        # RAPI is the API of ganeti
-        ferm::service { 'ganeti_rapi_cluster':
-            proto  => 'tcp',
-            port   => 5080,
-            srange => "@resolve((${ganeti_ferm_nodes}))",
-        }
-        # Ganeti noded is responsible for all cluster/node actions
-        ferm::service { 'ganeti_noded_cluster':
-            proto  => 'tcp',
-            port   => 1811,
-            srange => "@resolve((${ganeti_ferm_nodes}))",
-        }
-        nrpe::monitor_service{ 'ganeti-noded':
-            description  => 'ganeti-noded running',
-            nrpe_command => '/usr/lib/nagios/plugins/check_procs -w 1:2 -c 1:2 
-u root -C ganeti-noded'
-        }
-
-        # Ganeti confd provides a HA and fast way to query cluster 
configuration
-        ferm::service { 'ganeti_confd_cluster':
-            proto  => 'udp',
-            port   => 1814,
-            srange => "@resolve((${ganeti_ferm_nodes}))",
-        }
-        nrpe::monitor_service{ 'ganeti-confd':
-            description  => 'ganeti-confd running',
-            nrpe_command => '/usr/lib/nagios/plugins/check_procs -w 1:1 -c 1:1 
-u gnt-confd -C ganeti-confd'
-        }
-
-        # Ganeti mond is the monitoring daemon. Data is available via port 1815
-        ferm::service { 'ganeti_mond_cluster':
-            proto  => 'tcp',
-            port   => 1815,
-            srange => "@resolve((${ganeti_ferm_nodes}))",
-        }
-        nrpe::monitor_service{ 'ganeti-mond':
-            description  => 'ganeti-mond running',
-            nrpe_command => '/usr/lib/nagios/plugins/check_procs -w 1:1 -c 1:1 
-u root -C ganeti-mond'
-        }
-
-        # DRBD is used for HA of disk images. Port range for ganeti is
-        # 11000-14999
-        ferm::service { 'ganeti_drbd':
-            proto  => 'tcp',
-            port   => '11000:14999',
-            srange => "@resolve((${ganeti_ferm_nodes}))",
-        }
-
-        # Migration is done over TCP port
-        ferm::service { 'ganeti_migration':
-            proto  => 'tcp',
-            port   => 8102,
-            srange => "@resolve((${ganeti_ferm_nodes}))",
-        }
-    }
+    include ::standard
+    include ::profile::ganeti
+    include ::profile::base::firewall
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic930b7e63644acc74aa6b803a9360628803dc782
Gerrit-PatchSet: 7
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Dzahn <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: Dzahn <[email protected]>
Gerrit-Reviewer: Giuseppe Lavagetto <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to