Filippo Giunchedi has uploaded a new change for review. https://gerrit.wikimedia.org/r/244647
Change subject: restbase: move to systemd unit file ...................................................................... restbase: move to systemd unit file Change-Id: I96ab266bd7f5d857eaf61940e6107a0fd651e8d8 --- M modules/restbase/manifests/init.pp A modules/restbase/templates/initscripts/restbase.systemd.erb D modules/restbase/templates/restbase.default.erb D modules/restbase/templates/restbase.init 4 files changed, 19 insertions(+), 197 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/47/244647/1 diff --git a/modules/restbase/manifests/init.pp b/modules/restbase/manifests/init.pp index a0761cc..9ca948b 100644 --- a/modules/restbase/manifests/init.pp +++ b/modules/restbase/manifests/init.pp @@ -95,18 +95,11 @@ } file { '/etc/default/restbase': - content => template('restbase/restbase.default.erb'), - owner => 'root', - group => 'root', - mode => '0444', + ensure => absent } file { '/etc/init.d/restbase': - content => template('restbase/restbase.init'), - owner => 'root', - group => 'root', - mode => '0755', - require => File['/etc/default/restbase'], + ensure => absent } file { '/etc/restbase': @@ -140,14 +133,13 @@ before => Service['restbase'], } - service { 'restbase': - ensure => running, - hasstatus => true, - hasrestart => true, - provider => 'init', - require => File[ - '/etc/restbase/config.yaml', - '/etc/init.d/restbase' - ], + base::service_unit { 'restbase': + ensure => present, + template_name => 'restbase', + systemd => true, + refresh => false, + require => [File['/etc/restbase/config.yaml'], + Package['restbase/deploy'], + ], } } diff --git a/modules/restbase/templates/initscripts/restbase.systemd.erb b/modules/restbase/templates/initscripts/restbase.systemd.erb new file mode 100644 index 0000000..9cdf08d --- /dev/null +++ b/modules/restbase/templates/initscripts/restbase.systemd.erb @@ -0,0 +1,9 @@ +[Unit] +Description=REST storage API and backend orchestration layer +After=network.target + +[Service] +User=restbase +Group=restbase +LimitNOFILE=200000 +ExecStart=/usr/bin/nodejs /usr/lib/restbase/deploy/restbase/server.js -c /etc/restbase/config.yaml diff --git a/modules/restbase/templates/restbase.default.erb b/modules/restbase/templates/restbase.default.erb deleted file mode 100644 index 8dbc652..0000000 --- a/modules/restbase/templates/restbase.default.erb +++ /dev/null @@ -1,5 +0,0 @@ -# Defaults for restbase initscript - -SETTINGS_FILE=/etc/restbase/config.yaml - -DAEMON_ARGS="-c $SETTINGS_FILE" diff --git a/modules/restbase/templates/restbase.init b/modules/restbase/templates/restbase.init deleted file mode 100644 index 1099af0..0000000 --- a/modules/restbase/templates/restbase.init +++ /dev/null @@ -1,174 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: restbase -# Required-Start: $local_fs $network $remote_fs $syslog -# Required-Stop: $local_fs $network $remote_fs $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: REST storage API and backend orchestration layer -# Description: Distributed storage service with REST API & backend -# service orchestration layer. -### END INIT INFO - -# Author: Gabriel Wicke <gwi...@wikimedia.org> - -# Do NOT "set -e" - -# PATH should only include /usr/* if it runs after the mountnfs.sh script -PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="RESTBase HTTP service" -NAME=restbase -SCRIPT_PATH=/usr/lib/restbase/deploy/restbase/server.js -DAEMON="/usr/bin/nodejs $SCRIPT_PATH" -DAEMON_ARGS="" -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME - -# Exit if the package is not installed -[ -e "$SCRIPT_PATH" ] || exit 0 - -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME - -# export the port and host env vars, if set -export PORT -export INTERFACE - -# Load the VERBOSE setting and other rcS variables -. /lib/init/vars.sh - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.2-14) to ensure that this file is present -# and status_of_proc is working. -. /lib/lsb/init-functions - -# -# Function that starts the daemon/service -# -do_start() -{ - # up the number of fds [sockets] from 1024 - ulimit -n 200000 - - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - - start-stop-daemon --start --quiet --pidfile $PIDFILE -bm \ - -c restbase:restbase --test \ - --exec /bin/sh -- \ - -c "$DAEMON $DAEMON_ARGS 2>&1 | logger -i -t restbase" \ - || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE -bm \ - -c restbase:restbase \ - --exec /bin/sh -- \ - -c "$DAEMON $DAEMON_ARGS 2>&1 | logger -i -t restbase" \ - || return 2 - echo "Started RESTBase server, by default listening on port 7231" - - - # Add code here, if necessary, that waits for the process to be ready - # to handle requests from services started subsequently which depend - # on this one. As a last resort, sleep for some time. - sleep 5 -} - -# -# Function that stops the daemon/service -# -do_stop() -{ - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/60/KILL/5 --pidfile $PIDFILE --name $NAME - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - # Wait for children to finish too if this is a daemon that forks - # and if the daemon is only ever run from this initscript. - # If the above conditions are not satisfied then add some other code - # that waits for the process to drop all resources that could be - # needed by services started subsequently. A last resort is to - # sleep for some time. - start-stop-daemon --stop --quiet --oknodo --retry=0/5/KILL/5 --exec $DAEMON - [ "$?" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - return "$RETVAL" -} - -# -# Function that sends a SIGHUP to the daemon/service -# -do_reload() { - # - # If the daemon can reload its configuration without - # restarting (for example, when it is sent a SIGHUP), - # then implement that here. - # - start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME - return 0 -} - -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - status) - status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? - ;; - #reload|force-reload) - # - # If do_reload() is not implemented then leave this commented out - # and leave 'force-reload' as an alias for 'restart'. - # - #log_daemon_msg "Reloading $DESC" "$NAME" - #do_reload - #log_end_msg $? - #;; - restart|force-reload) - # - # If the "reload" option is implemented then remove the - # 'force-reload' alias - # - log_daemon_msg "Restarting $DESC" "$NAME" - do_stop - case "$?" in - 0|1) - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - ;; - *) - #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac - -: -- To view, visit https://gerrit.wikimedia.org/r/244647 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I96ab266bd7f5d857eaf61940e6107a0fd651e8d8 Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Filippo Giunchedi <fgiunch...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits