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

Reply via email to