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

Reply via email to