ArielGlenn has submitted this change and it was merged.

Change subject: module for releases webserver (mobile and mw tarballs)
......................................................................


module for releases webserver (mobile and mw tarballs)

Change-Id: Ife41e6f5c937e5af6b922cf118b7a7042dd794a9
---
A manifests/role/releases.pp
A modules/releases/manifests/backups.pp
A modules/releases/manifests/init.pp
A modules/releases/manifests/webserver.pp
4 files changed, 110 insertions(+), 0 deletions(-)

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



diff --git a/manifests/role/releases.pp b/manifests/role/releases.pp
new file mode 100644
index 0000000..535105a
--- /dev/null
+++ b/manifests/role/releases.pp
@@ -0,0 +1,34 @@
+class role::releases {
+    system::role { 'releases': description => 'Releases webserver' }
+
+    monitor_service {
+        'http': description => 'HTTP',
+        check_command       => 'check_http',
+    }
+
+    class { '::releases':
+        sitename     => 'releases.wikimedia.org',
+        docroot      => 'releases',
+    }
+
+    role::releases::access { 'brion': group => 'mobileupld' }
+    role::releases::access { 'csteipp': group => 'mwupld' }
+}
+
+class role::releases::groups {
+    group { 'mwupld':
+            ensure => 'present',
+    }
+    group { 'mobileupld':
+            ensure => 'present',
+    }
+}
+
+define role::releases::access ( $user=$title, $group='wikidev' ) {
+    require 'role::releases::groups'
+    require 'groups::wikidev'
+    require "accounts::${user}"
+    Class['groups::wikidev'] -> Class['role::releases::groups'] ->
+        Class["accounts::${user}"]
+    User<|title == $user|>       { groups +> [ $group ] }
+}
diff --git a/modules/releases/manifests/backups.pp 
b/modules/releases/manifests/backups.pp
new file mode 100644
index 0000000..ce5af77
--- /dev/null
+++ b/modules/releases/manifests/backups.pp
@@ -0,0 +1,4 @@
+class releases::backups {
+    include 'backup::host'
+    backup::set { 'srv-org-wikimedia': }
+}
diff --git a/modules/releases/manifests/init.pp 
b/modules/releases/manifests/init.pp
new file mode 100644
index 0000000..240f9ba
--- /dev/null
+++ b/modules/releases/manifests/init.pp
@@ -0,0 +1,37 @@
+# Release server module for Wikimedia
+#
+# this module sets up a simple web server
+# that will serve static files
+#
+# production: https://releases.wikimedia.org
+#
+# requirements:
+#
+# - initial content must be manually copied into
+#   /srv/org/wikimedia/releases
+# - ownership/perms of subdirs must be initially
+#   be set appropriately for users to add content
+#
+# this sets up:
+#
+# - the apache site config
+# - the /srv/org/wikimedia/ subdir docroot
+#
+# Because this service is intended to live behind a
+# caching cluster which would handle ssh, it does not
+# install certs or configure apache for ssh
+
+class releases (
+        $sitename = undef,
+        $docroot = undef,
+        $server_admin = '[email protected]',
+) {
+
+    class { 'releases::webserver':
+        sitename     => $sitename,
+        docroot      => $docroot,
+        server_admin => $server_admin,
+    }
+
+    include 'releases::backups'
+}
diff --git a/modules/releases/manifests/webserver.pp 
b/modules/releases/manifests/webserver.pp
new file mode 100644
index 0000000..724aa6c
--- /dev/null
+++ b/modules/releases/manifests/webserver.pp
@@ -0,0 +1,35 @@
+class releases::webserver (
+        $sitename = undef,
+        $docroot = undef,
+        $server_admin = undef,
+) {
+    file { '/srv/org':
+        ensure => directory,
+        owner  => 'root',
+        group  => 'root',
+        mode   => '0755',
+    }
+    file { '/srv/org/wikimedia':
+        ensure => directory,
+        owner  => 'root',
+        group  => 'root',
+        mode   => '0755',
+    }
+    file { "/srv/org/wikimedia/${docroot}":
+        ensure => directory,
+        owner  => 'root',
+        group  => 'root',
+        mode   => '0755',
+    }
+
+    include 'webserver::apache'
+    @webserver::apache::module { ['rewrite']: }
+    @webserver::apache::site { $sitename:
+        docroot      => "/srv/org/wikimedia/$docroot/",
+        server_admin => $server_admin,
+        require      => [
+            Webserver::Apache::Module['rewrite'],
+            File['/srv/org/wikimedia/releases']
+        ],
+    }
+}

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ife41e6f5c937e5af6b922cf118b7a7042dd794a9
Gerrit-PatchSet: 4
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: ArielGlenn <[email protected]>
Gerrit-Reviewer: ArielGlenn <[email protected]>
Gerrit-Reviewer: Faidon Liambotis <[email protected]>
Gerrit-Reviewer: Matanya <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to