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