Andrew Bogott has submitted this change and it was merged.

Change subject: Added manifest for rt4 running with Apache.
......................................................................


Added manifest for rt4 running with Apache.

Change-Id: I62e06979cf0aca4437805812565c74af8c4b369f
---
A manifests/misc/rt-server-apache.pp
M manifests/role/request-tracker.pp
A templates/rt/50-debconf.erb
A templates/rt/51-dbconfig-common.erb
A templates/rt/rt4.apache.erb
5 files changed, 161 insertions(+), 0 deletions(-)

Approvals:
  Andrew Bogott: Verified; Looks good to me, approved
  jenkins-bot: Verified
  Dzahn: Looks good to me, but someone else must approve



diff --git a/manifests/misc/rt-server-apache.pp 
b/manifests/misc/rt-server-apache.pp
new file mode 100644
index 0000000..8d2cec1
--- /dev/null
+++ b/manifests/misc/rt-server-apache.pp
@@ -0,0 +1,70 @@
+# RT - Request Tracker
+#
+#  This will create a server running RT with apache.
+#
+class misc::rt-apache::server ( $dbuser, $dbpass, $site = 'rt.wikimedia.org', 
$dbhost = 'localhost', $dbport = '', $datadir = '/var/lib/mysql' ) {
+  system_role { 'misc::rt-apache::server': description => 'RT server with 
Apache' }
+
+  $rt_mysql_user = $dbuser
+  $rt_mysql_pass = $dbpass
+  $rt_mysql_host = $dbhost
+  $rt_mysql_port = $dbport
+
+  package { [ 'request-tracker4', 'rt4-db-mysql', 'rt4-clients', 
'libdbd-pg-perl' ]:
+    ensure => latest;
+  }
+
+  include apache
+
+  $rtconf = '# This file is for the command-line client, 
/usr/bin/rt.\n\nserver http://localhost/rt\n'
+
+  file {
+    '/etc/request-tracker4/RT_SiteConfig.d/50-debconf':
+      require => package['request-tracker4'],
+      content => template('rt/50-debconf.erb'),
+      notify => Exec['update-rt-siteconfig'];
+    '/etc/request-tracker4/RT_SiteConfig.d/51-dbconfig-common':
+      require => package['request-tracker4'],
+      content => template('rt/51-dbconfig-common.erb'),
+      notify => Exec['update-rt-siteconfig'];
+    '/etc/request-tracker4/RT_SiteConfig.d/80-wikimedia':
+      require => package['request-tracker4'],
+      source => 'puppet:///files/rt/80-wikimedia',
+      notify => Exec['update-rt-siteconfig'];
+    '/etc/request-tracker4/RT_SiteConfig.pm':
+      require => package['request-tracker4'],
+      owner => 'root',
+      group => 'www-data',
+      mode  => '0440';
+    '/etc/request-tracker4/rt.conf':
+      require => Package['request-tracker4'],
+      content => $rtconf;
+  }
+
+  exec { 'update-rt-siteconfig':
+    command     => '/usr/sbin/update-rt-siteconfig-4',
+    subscribe => file[ "/etc/request-tracker4/RT_SiteConfig.d/50-debconf",
+                       
"/etc/request-tracker4/RT_SiteConfig.d/51-dbconfig-common",
+                       "/etc/request-tracker4/RT_SiteConfig.d/80-wikimedia" ],
+    require => package[ 'request-tracker4', 'rt4-db-mysql', 'rt4-clients' ],
+    refreshonly => true,
+    notify      => Service[httpd];
+  }
+
+  file { '/etc/apache2/sites-available/rt4':
+    ensure  => present,
+    owner   => root,
+    group   => root,
+    mode    => '0644',
+    content => template('rt/rt4.apache.erb'),
+  }
+
+  apache_module { 'perl':
+    name => 'perl',
+  }
+
+  apache_site { 'rt4':
+    name => 'rt4'
+  }
+
+}
diff --git a/manifests/role/request-tracker.pp 
b/manifests/role/request-tracker.pp
index cac4735..54a9e0e 100644
--- a/manifests/role/request-tracker.pp
+++ b/manifests/role/request-tracker.pp
@@ -17,3 +17,43 @@
        }
 }
 
+#  Labs/testing RT with Apache
+#
+class role::request-tracker-apache::labs {
+       include passwords::misc::rt
+
+       class { "misc::rt-apache::server":
+               dbuser => $passwords::misc::rt::rt_mysql_user,
+               dbpass => $passwords::misc::rt::rt_mysql_pass,
+               site => $::fqdn,
+               datadir => "/a/mysql",
+       }
+
+       class { 'generic::mysql::server':
+               version => $::lsbdistrelease ? {
+                       '12.04' => '5.5',
+                       default => false,
+               },
+               datadir => $datadir;
+       }
+
+       exec { 'rt-db-initialize':
+               command => "/bin/echo '' | /usr/sbin/rt-setup-database --action 
init --dba root --prompt-for-dba-password",
+               require => Class['misc::rt-apache::server', 
'generic::mysql::server'],
+               unless  => '/usr/bin/mysqlshow rt4';
+       }
+}
+
+#  Production RT with Apache
+#
+class role::request-tracker-apache::production {
+       include passwords::misc::rt
+
+       class { "misc::rt-apache::server":
+               site => 'rt.wikimedia.org',
+               dbhost => 'db1001',
+               dbport => '',
+               dbuser => $passwords::misc::rt::rt_mysql_user,
+               dbpass => $passwords::misc::rt::rt_mysql_pass,
+       }
+}
diff --git a/templates/rt/50-debconf.erb b/templates/rt/50-debconf.erb
new file mode 100644
index 0000000..28d2317
--- /dev/null
+++ b/templates/rt/50-debconf.erb
@@ -0,0 +1,13 @@
+# This file is managed by Puppet!
+
+Set($rtname, 'wikimedia');
+Set($Organization, "<%=@site%>");
+
+Set($CorrespondAddress , "correspond@<%=@site%>");
+Set($CommentAddress , "comment@<%=@site%>");
+
+# THE WEBSERVER:
+
+Set($WebPath , "");
+Set($WebBaseURL , "http://<%=@site%>");
+
diff --git a/templates/rt/51-dbconfig-common.erb 
b/templates/rt/51-dbconfig-common.erb
new file mode 100644
index 0000000..5bfec4e
--- /dev/null
+++ b/templates/rt/51-dbconfig-common.erb
@@ -0,0 +1,19 @@
+# This file is managed by Puppet!
+#
+# It's a tuned version of a file that was
+# generated by dbconfig-common
+
+# map from dbconfig-common database types to their names as known by RT
+my %typemap = (
+    mysql   => 'mysql',
+    pgsql   => 'Pg',
+    sqlite3 => 'SQLite',
+);
+
+Set($DatabaseType, $typemap{mysql} || "UNKNOWN");
+
+Set($DatabaseHost, '<%=@rt_mysql_host%>');
+Set($DatabasePort, '<%=@rt_mysql_port%>');
+
+Set($DatabaseUser , '<%=@rt_mysql_user%>');
+Set($DatabasePassword , '<%=@rt_mysql_pass%>');
diff --git a/templates/rt/rt4.apache.erb b/templates/rt/rt4.apache.erb
new file mode 100644
index 0000000..83e0264
--- /dev/null
+++ b/templates/rt/rt4.apache.erb
@@ -0,0 +1,19 @@
+# This file is managed by Puppet!
+#
+<VirtualHost "<%=@site%>">
+    AddDefaultCharset UTF-8
+
+    DocumentRoot "/usr/share/request-tracker4/html"
+    <Location />
+        Order allow,deny
+        Allow from all
+
+        SetHandler modperl
+        PerlResponseHandler Plack::Handler::Apache2
+        PerlSetVar psgi_app /usr/share/request-tracker4/libexec/rt-server
+    </Location>
+    <Perl>
+        use Plack::Handler::Apache2;
+        
Plack::Handler::Apache2->preload("/usr/share/request-tracker4/libexec/rt-server");
+    </Perl>
+</VirtualHost>

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I62e06979cf0aca4437805812565c74af8c4b369f
Gerrit-PatchSet: 3
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Dzahn <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to