Giuseppe Lavagetto has uploaded a new change for review.
https://gerrit.wikimedia.org/r/281885
Change subject: hhvm: add systemd/jessie support
......................................................................
hhvm: add systemd/jessie support
Change-Id: Id654cfb6f0a501172e4511f6d4656ef2ff48b423
---
A modules/hhvm/files/check-hhvm-stacktraces.sh
M modules/hhvm/manifests/init.pp
A modules/hhvm/templates/hhvm.default.systemd.erb
R modules/hhvm/templates/hhvm.default.upstart.erb
A modules/hhvm/templates/initscripts/hhvm.systemd.erb
5 files changed, 53 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/operations/puppet
refs/changes/85/281885/1
diff --git a/modules/hhvm/files/check-hhvm-stacktraces.sh
b/modules/hhvm/files/check-hhvm-stacktraces.sh
new file mode 100755
index 0000000..5f7d96a
--- /dev/null
+++ b/modules/hhvm/files/check-hhvm-stacktraces.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+set -u
+# Find any stacktraces we still did not act upon
+for TRACE in "/var/log/hhvm/stacktrace.*.log";
+do
+ # Log the stack trace
+ /usr/bin/logger --tag hhvm-fatal --file ${TRACE}
+
+ # Append the current UTC date (in YYYYMMDD format) to the file
+ # name, so it doesn't get clobbered when the PID is recycled.
+ mv --backup "$TRACE" "${TRACE}.$(date -u +%Y%m%d)"
+done
diff --git a/modules/hhvm/manifests/init.pp b/modules/hhvm/manifests/init.pp
index d85871c..55e1c7f 100644
--- a/modules/hhvm/manifests/init.pp
+++ b/modules/hhvm/manifests/init.pp
@@ -64,7 +64,7 @@
$tmp_dir = '/var/tmp/hhvm',
$cache_dir = '/var/cache/hhvm'
) {
- requires_os('ubuntu >= trusty')
+ requires_os('ubuntu >= trusty || Debian >= jessie')
## Packages
@@ -223,27 +223,32 @@
## Service
file { '/etc/default/hhvm':
- content => template('hhvm/hhvm.default.erb'),
+ content => template("hhvm/hhvm.default.${::initsystem}.erb"),
owner => 'root',
group => 'root',
mode => '0444',
notify => Service['hhvm'],
}
- file { '/etc/init/hhvm.conf':
- content => template('hhvm/initscripts/hhvm.upstart.erb'),
- owner => 'root',
- group => 'root',
- mode => '0444',
- notify => Service['hhvm'],
- }
-
- service { 'hhvm':
- ensure => 'running',
- provider => 'upstart',
+ base::service_unit { 'hhvm':
+ ensure => present,
+ systemd => true,
+ upstart => true,
subscribe => Package[$ext_pkgs],
}
+ if $::initsystem == 'systemd' {
+ # Post-stop script to collect stacktraces
+ file { '/usr/local/bin/check-hhvm-stacktraces':
+ ensure => present,
+ mode => '0550',
+ owner => $user,
+ group => $group,
+ source => 'puppet:///modules/hhvm/check-hhvm-stacktraces.sh',
+ before => Base::Service_unit['hhvm'],
+ }
+ }
+
file { '/etc/hhvm':
ensure => directory,
owner => 'root',
diff --git a/modules/hhvm/templates/hhvm.default.systemd.erb
b/modules/hhvm/templates/hhvm.default.systemd.erb
new file mode 100644
index 0000000..389cd82
--- /dev/null
+++ b/modules/hhvm/templates/hhvm.default.systemd.erb
@@ -0,0 +1,9 @@
+# Default file for HHVM
+# This file is managed by Puppet.
+
+# Run the FastCGI server as this user.
+RUN_AS_USER="<%= @user %>"
+RUN_AS_GROUP="<%= @group %>
+
+## Add additional arguments to the hhvm service start up that you can't put in
CONFIG_FILE for some reason.
+# ADDITIONAL_ARGS=
diff --git a/modules/hhvm/templates/hhvm.default.erb
b/modules/hhvm/templates/hhvm.default.upstart.erb
similarity index 100%
rename from modules/hhvm/templates/hhvm.default.erb
rename to modules/hhvm/templates/hhvm.default.upstart.erb
diff --git a/modules/hhvm/templates/initscripts/hhvm.systemd.erb
b/modules/hhvm/templates/initscripts/hhvm.systemd.erb
new file mode 100644
index 0000000..ae238df
--- /dev/null
+++ b/modules/hhvm/templates/initscripts/hhvm.systemd.erb
@@ -0,0 +1,14 @@
+[Unit]
+Description=HHVM PHP/Hack runtime
+After=network.target
+
+[Service]
+Environment=CONFIG_FILE=/etc/hhvm/server.ini
+Environment=ADDITIONAL_ARGS=
+Environment=RUN_AS_USER=www-data
+EnvironmentFile=-/etc/default/hhvm
+ExecStart=/usr/bin/hhvm --mode server --config $CONFIG_FILE --user
$RUN_AS_USER $ADDITIONAL_ARGS
+ExecStopPost=/usr/local/bin/check-hhvm-stacktraces
+
+[Install]
+WantedBy=multi-user.target
--
To view, visit https://gerrit.wikimedia.org/r/281885
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id654cfb6f0a501172e4511f6d4656ef2ff48b423
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Giuseppe Lavagetto <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits