[MediaWiki-commits] [Gerrit] uwsgi: Clean up uwsgi module - change (operations/puppet)

2015-07-08 Thread Yuvipanda (Code Review)
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)

2015-07-07 Thread Yuvipanda (Code Review)
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