Alexandros Kosiaris has submitted this change and it was merged.

Change subject: Adding install-server::ubuntu-mirror class
......................................................................


Adding install-server::ubuntu-mirror class

Adding forgotten ubuntu-mirror class. Add tests and rspec tests for the
new class. Reorganize a bit the role class so that a needed user is
created before the ubuntu-mirror class is realized
In the process also rename role::install-server classes to
role::installserver to avoid any potential scoping problems

Change-Id: I382cb74b3405289613dd62481934e6d215618d73
---
M manifests/role/install-server.pp
M manifests/site.pp
R modules/install-server/files/update-ubuntu-mirror
A modules/install-server/manifests/ubuntu-mirror.pp
A modules/install-server/spec/classes/install_server_ubuntu_mirror_spec.rb
A modules/install-server/tests/ubuntu-mirror.pp
6 files changed, 92 insertions(+), 9 deletions(-)

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



diff --git a/manifests/role/install-server.pp b/manifests/role/install-server.pp
index 4f4b03c..c315a92 100644
--- a/manifests/role/install-server.pp
+++ b/manifests/role/install-server.pp
@@ -1,4 +1,4 @@
-# Class: role::install-server
+# Class: role::installserver
 #
 # A WMF role class used to install all the install-server stuff
 #
@@ -23,9 +23,9 @@
 #   Define['apt::pin']
 #
 # Sample Usage:
-#       include role::install-server
+#       include role::installserver
 
-class role::install-server {
+class role::installserver {
     system::role { 'role::install-server':
         description => 'WMF Install server. APT repo, Forward Caching, TFTP, \
                         DHCP and Web server',
@@ -40,6 +40,13 @@
     include install-server::caching-proxy
     include install-server::web-server
     include install-server::dhcp-server
+
+    # System user and group for mirroring
+    generic::systemuser { 'mirror':
+        name => 'mirror',
+        home => '/var/lib/mirror',
+        before => Class['install-server::ubuntu-mirror'],
+    }
 
     # Backup
     $sets = [ 'srv-autoinstall',
@@ -87,9 +94,9 @@
 #   Define['ferm::rule']
 #
 # Sample Usage:
-#       include role::install-server::tftp-server
+#       include role::installserver::tftp-server
 
-class role::install-server::tftp-server {
+class role::installserver::tftp-server {
     system::role { 'role::install-server::tftp-server':
         description => 'WMF TFTP server',
     }
diff --git a/manifests/site.pp b/manifests/site.pp
index 3145db3..75cd4ac 100644
--- a/manifests/site.pp
+++ b/manifests/site.pp
@@ -290,7 +290,7 @@
     include standard,
     admins::roots,
     misc::management::ipmi,
-    role::install-server::tftp-server
+    role::installserver::tftp-server
 
 }
 
@@ -307,7 +307,7 @@
     $tftpboot_server_type = 'master'
 
     include standard,
-        role::install-server,
+        role::installserver,
         backup::client
 
     # set up brewster to use haproxy to proxy puppet
@@ -337,7 +337,7 @@
 
     include standard,
         backup::client,
-        role::install-server
+        role::installserver
 }
 
 # cerium,praseodymium, ruthenium and xenon are cassandra test host
@@ -1135,7 +1135,7 @@
     $domain_search = "esams.wikimedia.org wikimedia.org esams.wmnet"
 
     include standard,
-        role::install-server::tftp-server,
+        role::installserver::tftp-server,
         admins::roots,
         admins::mortals,
         admins::restricted
diff --git a/files/misc/update-ubuntu-mirror 
b/modules/install-server/files/update-ubuntu-mirror
similarity index 100%
rename from files/misc/update-ubuntu-mirror
rename to modules/install-server/files/update-ubuntu-mirror
diff --git a/modules/install-server/manifests/ubuntu-mirror.pp 
b/modules/install-server/manifests/ubuntu-mirror.pp
new file mode 100644
index 0000000..fc8d72a
--- /dev/null
+++ b/modules/install-server/manifests/ubuntu-mirror.pp
@@ -0,0 +1,43 @@
+# Class: install-server::ubuntu-mirror
+#
+# This class populates ubuntu-mirror's configuration
+#
+# Parameters:
+#
+# Actions:
+#       Populate ubuntu-mirror configuration directory
+#
+# Requires:
+#
+# Sample Usage:
+#   include install-server::ubuntu-mirror
+
+class install-server::ubuntu-mirror {
+    # Top level directory must exist
+    file { '/srv/ubuntu/':
+        ensure  => directory,
+        owner   => 'mirror',
+        group   => 'mirror',
+        mode    => '0755',
+    }
+
+    # Update script
+    file { '/usr/local/sbin/update-ubuntu-mirror':
+        ensure  => present,
+        owner   => 'root',
+        group   => 'root',
+        mode    => '0555',
+        source  => 'puppet:///modules/install-server/update-ubuntu-mirror',
+    }
+
+    # Mirror update cron entry
+    cron { 'update-ubuntu-mirror':
+        ensure  => present,
+        command => '/usr/local/sbin/update-ubuntu-mirror 1>/dev/null 
2>/var/lib/mirror/mirror.err.log',
+        user    => 'mirror',
+        hour    => '*/6',
+        minute  => '43',
+        require => File['/usr/local/sbin/update-ubuntu-mirror'],
+    }
+}
+
diff --git 
a/modules/install-server/spec/classes/install_server_ubuntu_mirror_spec.rb 
b/modules/install-server/spec/classes/install_server_ubuntu_mirror_spec.rb
new file mode 100644
index 0000000..9837881
--- /dev/null
+++ b/modules/install-server/spec/classes/install_server_ubuntu_mirror_spec.rb
@@ -0,0 +1,31 @@
+require 'spec_helper'
+
+describe 'install-server::ubuntu-mirror', :type => :class do
+
+    it do
+        should contain_file('/srv/ubuntu/').with({
+            'ensure' => 'directory',
+            'owner'  => 'mirror',
+            'group'  => 'mirror',
+            'mode'   => '0755',
+        })
+    end
+    it do
+        should contain_file('/usr/local/sbin/update-ubuntu-mirror').with({
+            'ensure'  => 'present',
+            'owner'   => 'root',
+            'group'   => 'root',
+            'mode'    => '0555',
+            'source'  => 
'puppet:///modules/install-server/update-ubuntu-mirror',
+        })
+    end
+    it do
+        should contain_cron('update-ubuntu-mirror').with({
+            'ensure'  => 'present',
+            'command' => '/usr/local/sbin/update-ubuntu-mirror 1>/dev/null 
2>/var/lib/mirror/mirror.err.log',
+            'user'    => 'mirror',
+            'hour'    => '*/6',
+            'minute'  => '43',
+        })
+    end
+end
diff --git a/modules/install-server/tests/ubuntu-mirror.pp 
b/modules/install-server/tests/ubuntu-mirror.pp
new file mode 100644
index 0000000..4697dff
--- /dev/null
+++ b/modules/install-server/tests/ubuntu-mirror.pp
@@ -0,0 +1,2 @@
+#
+include install-server::ubuntu-mirror

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I382cb74b3405289613dd62481934e6d215618d73
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Alexandros Kosiaris <akosia...@wikimedia.org>
Gerrit-Reviewer: Alexandros Kosiaris <akosia...@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