[MediaWiki-commits] [Gerrit] uwsgi: Clean up uwsgi module - change (operations/puppet)
Yuvipanda has submitted this change and it was merged. Change subject: uwsgi: Clean up uwsgi module .. uwsgi: Clean up uwsgi module - Works on Jessie! - Creates a new upstart/systemd unit per uwsgi app, instead of 'uwsgi' instances. This, IMO, is much easier to maintain and understand. - Move NRPE monitor check into the app, so we get per app checks Change-Id: I23716dec739f6c3ba2fa61ea60579de8bfd4e42c --- M modules/graphite/files/graphite-web-logrotate D modules/uwsgi/files/init/app.conf D modules/uwsgi/files/init/init.conf D modules/uwsgi/files/uwsgictl M modules/uwsgi/manifests/app.pp M modules/uwsgi/manifests/init.pp A modules/uwsgi/templates/initscripts/uwsgi.systemd.erb A modules/uwsgi/templates/initscripts/uwsgi.upstart.erb 8 files changed, 38 insertions(+), 120 deletions(-) Approvals: Yuvipanda: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/graphite/files/graphite-web-logrotate b/modules/graphite/files/graphite-web-logrotate index ad09f99..206988e 100644 --- a/modules/graphite/files/graphite-web-logrotate +++ b/modules/graphite/files/graphite-web-logrotate @@ -16,6 +16,6 @@ nocreate sharedscripts postrotate -test ! -x /sbin/uwsgictl || /sbin/uwsgictl restart +/usr/sbin/service uwsgi-graphite-web restart endscript } diff --git a/modules/uwsgi/files/init/app.conf b/modules/uwsgi/files/init/app.conf deleted file mode 100644 index 3f936e2..000 --- a/modules/uwsgi/files/init/app.conf +++ /dev/null @@ -1,16 +0,0 @@ -# uwsgi/app -# This file is managed by Puppet -description uWSGI application - -instance $NAME - -stop on uwsgi.stop - -setuid www-data -setgid www-data - -exec /usr/bin/uwsgi --autoload --ini $CONFIG - -respawn - -# vim: set ft=upstart: diff --git a/modules/uwsgi/files/init/init.conf b/modules/uwsgi/files/init/init.conf deleted file mode 100644 index d805dfa..000 --- a/modules/uwsgi/files/init/init.conf +++ /dev/null @@ -1,24 +0,0 @@ -# uwsgi/init -# This file is managed by Puppet -description uWSGI application server container - -start on (filesystem and net-device-up IFACE!=lo) or uwsgi.start -stop on runlevel [!2345] or uwsgi.stop - -task - -pre-start script -mkdir -p /run/uwsgi -chown www-data:www-data /run/uwsgi -end script - -script -for config in /etc/uwsgi/apps-enabled/*.ini; do -[ -e $config ] || break -name=$(basename $config .ini) -start uwsgi/app NAME=$name CONFIG=$config || -status uwsgi/app NAME=$name -done -end script - -# vim: set ft=upstart: diff --git a/modules/uwsgi/files/uwsgictl b/modules/uwsgi/files/uwsgictl deleted file mode 100755 index e9ee706d..000 --- a/modules/uwsgi/files/uwsgictl +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# uwsgictl -- Manage configured uWSGI applications -# Usage: uwsgictl {status|check|start|stop|restart|tail} -# -command=$1 -shift -case $command in -status) -initctl list | grep -P '^uwsgi/(?!init)' | sort | \ -perl -pe 'END { exit $code } $code=1 if /stop\/waiting/;' -;; -check) -$0 status 21 /dev/null || { -echo CRITICAL: Not all configured uWSGI apps are running. -exit 2 -} -echo OK: All defined uWSGI apps are runnning. -exit 0 -;; -start) -/sbin/initctl emit uwsgi.start -;; -stop) -/sbin/initctl emit uwsgi.stop -;; -restart) -/sbin/initctl emit uwsgi.stop -/sbin/initctl emit uwsgi.start -;; -tail) -test -r /var/log/upstart/uwsgi_init.log tail $@ /var/log/upstart/uwsgi_init.log -;; -*) -echo 2 Usage: ${0##*/} {status|check|start|stop|restart|tail} -;; -esac diff --git a/modules/uwsgi/manifests/app.pp b/modules/uwsgi/manifests/app.pp index a1df351..77fb3a3 100644 --- a/modules/uwsgi/manifests/app.pp +++ b/modules/uwsgi/manifests/app.pp @@ -37,11 +37,25 @@ } if $enabled == true { -file { /etc/uwsgi/apps-enabled/${basename}.ini: +$inipath = /etc/uwsgi/apps-enabled/${basename}.ini +file { $inipath: ensure = link, target = /etc/uwsgi/apps-available/${basename}.ini, notify = Service['uwsgi'], } + +base::service_unit { uwsgi-${title}: +ensure= present, +template_name = 'uwsgi', +systemd = true, +upstart = true, +} +} + +nrpe::monitor_service { uwsgi-${title}: +description = ${title} uWSGI web app, +nrpe_command = /usr/sbin/service uwsgi-${title} status, +require = Service['uwsgi'], } } } diff --git a/modules/uwsgi/manifests/init.pp b/modules/uwsgi/manifests/init.pp index 81a4ae8..e060eff 100644 --- a/modules/uwsgi/manifests/init.pp +++
[MediaWiki-commits] [Gerrit] uwsgi: Clean up uwsgi module - change (operations/puppet)
Yuvipanda has uploaded a new change for review. https://gerrit.wikimedia.org/r/223383 Change subject: uwsgi: Clean up uwsgi module .. uwsgi: Clean up uwsgi module - Works on Jessie! - Creates a new upstart/systemd unit per uwsgi app, instead of 'uwsgi' instances. This, IMO, is much easier to maintain and understand. Change-Id: I23716dec739f6c3ba2fa61ea60579de8bfd4e42c --- D modules/uwsgi/files/init/app.conf M modules/uwsgi/manifests/app.pp M modules/uwsgi/manifests/init.pp A modules/uwsgi/templates/initscripts/uwsgi.systemd.erb A modules/uwsgi/templates/initscripts/uwsgi.upstart.erb 5 files changed, 30 insertions(+), 59 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/operations/puppet refs/changes/83/223383/1 diff --git a/modules/uwsgi/files/init/app.conf b/modules/uwsgi/files/init/app.conf deleted file mode 100644 index 3f936e2..000 --- a/modules/uwsgi/files/init/app.conf +++ /dev/null @@ -1,16 +0,0 @@ -# uwsgi/app -# This file is managed by Puppet -description uWSGI application - -instance $NAME - -stop on uwsgi.stop - -setuid www-data -setgid www-data - -exec /usr/bin/uwsgi --autoload --ini $CONFIG - -respawn - -# vim: set ft=upstart: diff --git a/modules/uwsgi/manifests/app.pp b/modules/uwsgi/manifests/app.pp index a1df351..6f62426 100644 --- a/modules/uwsgi/manifests/app.pp +++ b/modules/uwsgi/manifests/app.pp @@ -37,11 +37,19 @@ } if $enabled == true { -file { /etc/uwsgi/apps-enabled/${basename}.ini: +$inipath = /etc/uwsgi/apps-enabled/${basename}.ini +file { $inipath: ensure = link, target = /etc/uwsgi/apps-available/${basename}.ini, notify = Service['uwsgi'], } + +base::service_unit { uwsgi-${title}: +ensure= present, +template_name = 'uwsgi', +systemd = true, +upstart = true, +} } } } diff --git a/modules/uwsgi/manifests/init.pp b/modules/uwsgi/manifests/init.pp index 81a4ae8..e060eff 100644 --- a/modules/uwsgi/manifests/init.pp +++ b/modules/uwsgi/manifests/init.pp @@ -31,46 +31,4 @@ require = Package['uwsgi', $plugins], notify = Service['uwsgi'], } - -file { '/etc/init/uwsgi': -source = 'puppet:///modules/uwsgi/init', -recurse = true, -purge = true, -force = true, -require = Package['uwsgi'], -} - -if $::initsystem != 'systemd' { -# Crappy init script ships with ubuntu by default -file { '/sbin/uwsgictl': -source = 'puppet:///modules/uwsgi/uwsgictl', -owner = 'root', -group = 'root', -mode= '0755', -require = File['/etc/init/uwsgi'], -} - -service { 'uwsgi': -ensure = 'running', -provider = 'base', -restart = '/sbin/uwsgictl restart', -start= '/sbin/uwsgictl start', -status = '/sbin/uwsgictl status', -stop = '/sbin/uwsgictl stop', -require = File['/sbin/uwsgictl'], -} - -if hiera('has_nrpe', true) { -nrpe::monitor_service { 'uwsgi': -description = 'uWSGI web apps', -nrpe_command = '/sbin/uwsgictl check', -require = Service['uwsgi'], -} -} -} else { -# For jessie! Systemd has decent uwsgi startup script. -service { 'uwsgi': -ensure = running, -} -} } diff --git a/modules/uwsgi/templates/initscripts/uwsgi.systemd.erb b/modules/uwsgi/templates/initscripts/uwsgi.systemd.erb new file mode 100644 index 000..77e9efb --- /dev/null +++ b/modules/uwsgi/templates/initscripts/uwsgi.systemd.erb @@ -0,0 +1,10 @@ +[Unit] +Description = %= @title % uWSGI daemon + +[Service] +ExecStart = /usr/bin/uwsgi --autoload --ini %= @inipath % +User = www-data +Group = www-data + +[Install] +WantedBy = multi-user.target diff --git a/modules/uwsgi/templates/initscripts/uwsgi.upstart.erb b/modules/uwsgi/templates/initscripts/uwsgi.upstart.erb new file mode 100644 index 000..629a636 --- /dev/null +++ b/modules/uwsgi/templates/initscripts/uwsgi.upstart.erb @@ -0,0 +1,11 @@ +# This file is managed by Puppet +description %= @title % uwsgi app + +setuid www-data +setgid www-data + +exec /usr/bin/uwsgi --autoload --ini %= @inipath % + +respawn + +# vim: set ft=upstart: -- To view, visit https://gerrit.wikimedia.org/r/223383 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I23716dec739f6c3ba2fa61ea60579de8bfd4e42c Gerrit-PatchSet: 1 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Yuvipanda yuvipa...@gmail.com ___ MediaWiki-commits