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