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 <[email protected]>
Gerrit-Reviewer: Alexandros Kosiaris <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits