Faidon has submitted this change and it was merged.

Change subject: Jenkins module created out of contint manifests
......................................................................


Jenkins module created out of contint manifests

misc::contint contained a Jenkins class for the continuous integration.
I have extracted out the part which are only related to Jenkins in a new
Jenkins module.  Simply 'include jenkins' and you get an installation.

Moved the jenkins group definition to the module, dropping GID 561 in
the process and letting puppet manage it for us.

The Jenkins instance might need to be proxying via Apache, that
configuration is not part of the jenkins module.

Change-Id: I33bce60e08fd4c1e8184d6fac5ba0d3f9798fe35
---
M manifests/admins.pp
M manifests/misc/contint.pp
A modules/jenkins/README.md
R modules/jenkins/files/etc_default_jenkins
A modules/jenkins/manifests/group.pp
A modules/jenkins/manifests/init.pp
A modules/jenkins/manifests/user.pp
7 files changed, 81 insertions(+), 59 deletions(-)

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



diff --git a/manifests/admins.pp b/manifests/admins.pp
index b66abcf..e4a5933 100644
--- a/manifests/admins.pp
+++ b/manifests/admins.pp
@@ -56,16 +56,6 @@
                }
        }
 
-       class jenkins {
-               group { "jenkins":
-                       name      => "jenkins",
-                       gid       => 561,
-                       alias     => 561,
-                       ensure    => present,
-                       allowdupe => false;
-               }
-       }
-
        class wikidev {
                group { "wikidevgroup":
                        name            => "wikidev",
@@ -2715,7 +2705,7 @@
 class admins::jenkins {
        $gid = 500  # 'wikidev' by default
        include groups::wikidev
-       include groups::jenkins
+       include jenkins::group
 
        include accounts::demon
        include accounts::dsc
diff --git a/manifests/misc/contint.pp b/manifests/misc/contint.pp
index c9b3e29..5bd0957 100644
--- a/manifests/misc/contint.pp
+++ b/manifests/misc/contint.pp
@@ -86,17 +86,8 @@
 
        class jenkins {
 
-               # This used to rely on misc::jenkins to add the jenkins 
upstream repo and then
-               # install from there.  contint::misc::jenkins is now 
independent and will
-               # use whatever Ubuntu version is available
-               package { "jenkins":
-                       ensure => present
-               }
-
-               # Graphiz needed by the plugin that does the projects 
dependencies graph
-               package { "graphviz":
-                       ensure => present
-               }
+               # Load the Jenkins module
+               include ::jenkins
 
                # Get several OpenJDK packages including the jdk.
                # (openjdk is the default distribution for the java define.
@@ -104,24 +95,6 @@
                java { 'java-6-openjdk': version => 6, alternative => true  }
                java { 'java-7-openjdk': version => 7, alternative => false }
 
-               service { 'jenkins':
-                       enable => true,
-                       ensure => 'running',
-                       hasrestart => true,
-                       start => '/etc/init.d/jenkins start',
-                       stop => '/etc/init.d/jenkins stop';
-               }
-
-               require groups::jenkins
-               user { 'jenkins':
-                       name    => 'jenkins',
-                       home    => '/var/lib/jenkins',
-                       shell   => '/bin/bash',
-                       gid     =>  'jenkins',
-                       system  => true,
-                       managehome => false,
-                       require => Group['jenkins'];
-               }
 
                file {
                        "/var/lib/jenkins/.gitconfig":
@@ -150,24 +123,10 @@
                        require => [ User['jenkins'], Group['jenkins'], 
File['/var/lib/jenkins/tmpfs'] ];
                }
 
-               # nagios monitoring
-               monitor_service { 'jenkins': description => 
'jenkins_service_running', check_command => 'nrpe_check_jenkins' }
-
                file {
-                       "/var/lib/jenkins":
-                               mode  => 2775,  # group sticky bit
-                               owner => "jenkins",
-                               group => "jenkins",
-                               ensure => directory;
                        "/var/lib/jenkins/.git":
                                mode   => 2775,  # group sticky bit
                                group  => "jenkins",
-                               ensure => directory;
-                       # Top level jobs folder
-                       "/var/lib/jenkins/jobs/":
-                               owner => "jenkins",
-                               group => "jenkins",
-                               mode  => 2775,  # group sticky bit
                                ensure => directory;
                        "/var/lib/jenkins/bin":
                                owner => "jenkins",
@@ -255,11 +214,6 @@
                apache_module { proxy_http: name => "proxy_http" }
 
                file {
-                       "/etc/default/jenkins":
-                               owner => "root",
-                               group => "root",
-                               mode => 0444,
-                               source => 
"puppet:///files/misc/jenkins/etc_default_jenkins";
                        "/etc/apache2/conf.d/jenkins_proxy":
                                owner => "root",
                                group => "root",
diff --git a/modules/jenkins/README.md b/modules/jenkins/README.md
new file mode 100644
index 0000000..6c57b32
--- /dev/null
+++ b/modules/jenkins/README.md
@@ -0,0 +1,7 @@
+Jenkins module
+==============
+
+To install Jenkins:
+
+ include 'jenkins'
+
diff --git a/files/misc/jenkins/etc_default_jenkins 
b/modules/jenkins/files/etc_default_jenkins
similarity index 100%
rename from files/misc/jenkins/etc_default_jenkins
rename to modules/jenkins/files/etc_default_jenkins
diff --git a/modules/jenkins/manifests/group.pp 
b/modules/jenkins/manifests/group.pp
new file mode 100644
index 0000000..e74a044
--- /dev/null
+++ b/modules/jenkins/manifests/group.pp
@@ -0,0 +1,11 @@
+class jenkins::group {
+
+  class jenkins {
+    group { "jenkins":
+      name      => "jenkins",
+      ensure    => present,
+      allowdupe => false;
+    }
+  }
+
+}
diff --git a/modules/jenkins/manifests/init.pp 
b/modules/jenkins/manifests/init.pp
new file mode 100644
index 0000000..7fb1fdc
--- /dev/null
+++ b/modules/jenkins/manifests/init.pp
@@ -0,0 +1,45 @@
+class jenkins {
+  require jenkins::user
+  require jenkins::group
+
+  # Upgrades are usually done manually by upload the Jenkins
+  # package at apt.wikimedia.org then restarting jenkins and
+  # double checking everything went fine.
+  package { 'jenkins': ensure => present; }
+
+  # Graphiz is needed by the job dependency graph plugin
+  package { 'graphviz': ensure => present; }
+
+  service { 'jenkins':
+    ensure     => 'running',
+    enable     => true,
+    hasrestart => true,
+  }
+
+  # nagios monitoring
+  monitor_service { 'jenkins':
+    description   => 'jenkins_service_running',
+    check_command => 'nrpe_check_jenkins'
+  }
+
+  file { '/var/lib/jenkins':
+    ensure => directory,
+    mode   => '2775',  # group sticky bit
+    owner  => 'jenkins',
+    group  => 'jenkins',
+  }
+  # Top level jobs folder
+  file { '/var/lib/jenkins/jobs':
+    ensure => directory,
+    mode   => '2775',  # group sticky bit
+    owner  => 'jenkins',
+    group  => 'jenkins',
+  }
+  file { '/etc/default/jenkins':
+    owner  => 'root',
+    group  => 'root',
+    mode   => '0444',
+    source => 'puppet:///modules/jenkins/etc_default_jenkins',
+  }
+
+}
diff --git a/modules/jenkins/manifests/user.pp 
b/modules/jenkins/manifests/user.pp
new file mode 100644
index 0000000..949172a
--- /dev/null
+++ b/modules/jenkins/manifests/user.pp
@@ -0,0 +1,15 @@
+class jenkins::user {
+
+  include jenkins::group
+
+  user { 'jenkins':
+    name       => 'jenkins',
+    home       => '/var/lib/jenkins',
+    shell      => '/bin/bash',
+    gid        =>  'jenkins',
+    system     => true,
+    managehome => false,
+    require    => Group['jenkins'];
+  }
+
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I33bce60e08fd4c1e8184d6fac5ba0d3f9798fe35
Gerrit-PatchSet: 15
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Hashar <[email protected]>
Gerrit-Reviewer: Faidon <[email protected]>
Gerrit-Reviewer: Hashar <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to