MaxSem has uploaded a new change for review.
https://gerrit.wikimedia.org/r/189149
Change subject: WIP: Hierator puppetization
......................................................................
WIP: Hierator puppetization
Change-Id: Idf7549c3c788a66e93466a7b04f633e3d4f5a35d
---
A puppet/modules/jetty/manifests/init.pp
A puppet/modules/jetty/manifests/service.pp
A puppet/modules/jetty/templates/service.conf.erb
A puppet/modules/role/manifests/hierator.pp
4 files changed, 94 insertions(+), 0 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/vagrant
refs/changes/49/189149/1
diff --git a/puppet/modules/jetty/manifests/init.pp
b/puppet/modules/jetty/manifests/init.pp
new file mode 100644
index 0000000..cd12c2b
--- /dev/null
+++ b/puppet/modules/jetty/manifests/init.pp
@@ -0,0 +1,30 @@
+class jetty {
+ package { 'jetty8':
+ ensure => present,
+ }
+
+ # No need in a default Jetty instance, use jetty::service to run
separate JARs
+ service { 'jetty8':
+ ensure => stopped,
+ }
+
+ # HACK: until there's a package
+ exec { 'download jetty-runner':
+ command => 'wget
http://repo2.maven.org/maven2/org/mortbay/jetty/jetty-runner/8.1.3.v20120416/jetty-runner-8.1.3.v20120416.jar
-O /tmp/jetty-runner.jar',
+ creates => '/usr/share/java/jetty-runner.jar',
+ user => 'nobody',
+ }
+ ->
+ exec { 'copy jetty-runner':
+ command => 'mv /tmp/jetty-runner.jar /usr/share/java/',
+ user => 'root',
+ creates => '/usr/share/java/jetty-runner.jar',
+ }
+ ->
+ file { '/usr/share/java/jetty-runner.jar':
+ ensure => present,
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ }
+}
diff --git a/puppet/modules/jetty/manifests/service.pp
b/puppet/modules/jetty/manifests/service.pp
new file mode 100644
index 0000000..1ab4e9a
--- /dev/null
+++ b/puppet/modules/jetty/manifests/service.pp
@@ -0,0 +1,34 @@
+define jetty::service(
+ $war,
+ $port,
+ $user = 'www-data',
+ $log_channel = undef,
+) {
+ include ::jetty
+
+ $log = $log_channel ? {
+ undef => $name,
+ default => $log_channel,
+ }
+
+ File {
+ owner => 'root',
+ group => 'root',
+ mode => '0444',
+ notify => Service[$name],
+ }
+
+ file { "/etc/default/$name":
+ content => '',
+ ensure => present,
+ }
+ file { "/etc/init/$name.conf":
+ ensure => present,
+ content => template( 'jetty/service.conf.erb' ),
+ }
+
+ service { $name:
+ ensure => 'running',
+ provider => 'upstart',
+ }
+}
\ No newline at end of file
diff --git a/puppet/modules/jetty/templates/service.conf.erb
b/puppet/modules/jetty/templates/service.conf.erb
new file mode 100644
index 0000000..2629830
--- /dev/null
+++ b/puppet/modules/jetty/templates/service.conf.erb
@@ -0,0 +1,24 @@
+# This file is managed by Puppet
+description "Jetty runner executing <%= scope['war'] %> on port <%=
scope['port'] %>"
+
+start on (runlevel [2345] and net-device-up IFACE!=lo)
+stop on runlevel [!2345]
+
+umask 022
+
+pre-start script
+ mkdir -p -m0755 /var/run/<%= scope['name'] %>
+ [ ! -r /etc/default/<%= scope['name'] %> ] && { stop; exit 0; }
+end script
+
+script
+ . /etc/default/<%= scope['name'] %>
+ exec start-stop-daemon --quiet --start --pidfile /var/run/<%= scope['name']
%>/pid \
+ --chuid <%= scope['user'] %> --make-pidfile \
+ --exec /usr/bin/java -- -jar /usr/share/java/jetty-runner.jar --path <%=
scope['war'] %> \
+ --port <%= scope['port'] %> | logger -t <%= scope['log'] %> 2>&1
+end script
+
+respawn
+
+# vim: set ft=upstart:
diff --git a/puppet/modules/role/manifests/hierator.pp
b/puppet/modules/role/manifests/hierator.pp
new file mode 100644
index 0000000..611e1d3
--- /dev/null
+++ b/puppet/modules/role/manifests/hierator.pp
@@ -0,0 +1,6 @@
+class role::hierator {
+ jetty::service { 'hierator':
+ war => 'testme.war',
+ port => 8080,
+ }
+}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/189149
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Idf7549c3c788a66e93466a7b04f633e3d4f5a35d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/vagrant
Gerrit-Branch: master
Gerrit-Owner: MaxSem <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits