Skip to content

Commit e1bc5b6

Browse files
committed
Merge pull request #2 from kimor79/initd-support
init.d support
2 parents 9bc4bc5 + aedbf91 commit e1bc5b6

4 files changed

Lines changed: 143 additions & 11 deletions

File tree

manifests/init.pp

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525
# [*service_file*]
2626
# The location of the service file. Default: '/etc/init/uwsgi.conf'
2727
#
28+
# [*service_file_mode*]
29+
# The mode of the service file. Default: '0644'
30+
#
2831
# [*service_template*]
2932
# The location of the template to generate the *service_file*.
3033
# Default: 'uwsgi/uwsgi_upstart.conf.erb'
@@ -77,8 +80,9 @@
7780
$package_ensure = $uwsgi::params::package_ensure,
7881
$package_provider = $uwsgi::params::package_provider,
7982
$service_name = $uwsgi::params::service_name,
80-
$service_file = $uwsgi::params::service_file,
81-
$service_template = $uwsgi::params::service_template,
83+
$service_file = undef,
84+
$service_file_mode = undef,
85+
$service_template = undef,
8286
$service_ensure = $uwsgi::params::service_ensure,
8387
$service_enable = $uwsgi::params::service_enable,
8488
$service_provider = $uwsgi::params::service_provider,
@@ -127,13 +131,40 @@
127131
require => Package[$package_name]
128132
}
129133

130-
file { $service_file:
134+
if $service_file == undef {
135+
$service_file_real = $service_provider ? {
136+
redhat => '/etc/init.d/uwsgi',
137+
upstart => '/etc/init/uwsgi.conf',
138+
}
139+
} else {
140+
$service_file_real = $service_file
141+
}
142+
143+
if $service_file_mode == undef {
144+
$service_file_mode_real = $service_provider ? {
145+
redhat => '0555',
146+
upstart => '0644',
147+
}
148+
} else {
149+
$service_file_mode_real = $service_file_mode
150+
}
151+
152+
if $service_template == undef {
153+
$service_template_real = $service_provider ? {
154+
redhat => 'uwsgi/uwsgi_service-redhat.erb',
155+
upstart => 'uwsgi/uwsgi_upstart.conf.erb',
156+
}
157+
} else {
158+
$service_template_real = $service_template
159+
}
160+
161+
file { $service_file_real:
131162
ensure => $file_ensure,
132163
owner => 'root',
133164
group => 'root',
134-
mode => '0644',
165+
mode => $service_file_mode_real,
135166
replace => $manage_service_file,
136-
content => template($service_template),
167+
content => template($service_template_real),
137168
require => Package[$package_name]
138169
}
139170

@@ -154,11 +185,11 @@
154185
require => [
155186
Package[$package_name],
156187
File[$config_file],
157-
File[$service_file]
188+
File[$service_file_real]
158189
],
159190
subscribe => [
160191
File[$config_file],
161-
File[$service_file]
192+
File[$service_file_real]
162193
]
163194
}
164195

manifests/params.pp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
$package_ensure = 'installed'
1111
$package_provider = 'pip'
1212
$service_name = 'uwsgi'
13-
$service_file = '/etc/init/uwsgi.conf'
14-
$service_template = 'uwsgi/uwsgi_upstart.conf.erb'
1513
$service_ensure = true
1614
$service_enable = true
1715
$service_provider = 'upstart'
@@ -24,11 +22,15 @@
2422
case $::osfamily {
2523
redhat: {
2624
$app_directory = '/etc/uwsgi.d'
25+
$pidfile = '/var/run/uwsgi/uwsgi.pid'
2726
$python_dev = 'python-devel'
27+
$socket = '/var/run/uwsgi/uwsgi.socket'
2828
}
2929
default: {
3030
$app_directory = '/etc/uwsgi/apps-enabled'
31+
$pidfile = '/run/uwsgi/uwsgi.pid'
3132
$python_dev = 'python-dev'
33+
$socket = '/run/uwsgi/uwsgi.socket'
3234
}
3335
}
3436
}

templates/uwsgi.ini.erb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
# uWSGI main process configuration
55
#
66
[uwsgi]
7-
socket = /run/uwsgi/uwsgi.socket
8-
pidfile = /run/uwsgi/uwsgi.pid
7+
socket = <%= @socket %>
8+
pidfile = <%= @pidfile %>
99
emperor = <%= @app_directory %>
1010
emperor-tyrant = true
1111
master = true

templates/uwsgi_service-redhat.erb

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
#!/bin/sh
2+
# This file is managed by puppet class 'uwsgi'
3+
#
4+
# uWSGI Emperor process init.d script
5+
#
6+
# chkconfig: - 85 15
7+
# description: uWSGI Emperor process init.d script
8+
9+
### BEGIN INIT INFO
10+
# Provides: uwsgi
11+
# Required-Start: $local_fs $remote_fs $network
12+
# Required-Stop: $local_fs $remote_fs $network
13+
# Default-Start: 2 3 4 5
14+
# Default-Stop: 0 1 6
15+
# Short-Description: start and stop uwsgi
16+
### END INIT INFO
17+
18+
# Source function library.
19+
. /etc/rc.d/init.d/functions
20+
21+
OPTIONS="--daemonize --die-on-term --ini <%= @config_file %>"
22+
UWSGIPID="<%= @pidfile %>"
23+
UWSGISOCKET="<%= @socket %>"
24+
25+
UWSGIPIDDIR="${UWSGIPID%/*}"
26+
UWSGISOCKETDIR="${UWSGISOCKET%/*}"
27+
28+
[ -f /etc/sysconfig/uwsgi ] && . /etc/sysconfig/uwsgi
29+
30+
if [ ! -d "${UWSGIPIDDIR}" ]; then
31+
mkdir -p "${UWSGIPIDDIR}"
32+
[ -n "${RUNAS}" ] && chown "${RUNAS}:" "${UWSGIPIDDIR}"
33+
fi
34+
35+
if [ ! -d "${UWSGISOCKETDIR}" ]; then
36+
mkdir -p "${UWSGISOCKETDIR}"
37+
[ -n "${RUNAS}" ] && chown "${RUNAS}:" "${UWSGISOCKETDIR}"
38+
fi
39+
40+
RETVAL=0
41+
prog=uwsgi
42+
lockfile=/var/lock/subsys/$prog
43+
44+
start() {
45+
[ "$EUID" != "0" ] && exit 4
46+
47+
# Start daemons.
48+
echo -n $"Starting $prog: "
49+
daemon $prog $OPTIONS
50+
RETVAL=$?
51+
echo
52+
[ $RETVAL -eq 0 ] && touch $lockfile
53+
return $RETVAL
54+
}
55+
56+
stop() {
57+
[ "$EUID" != "0" ] && exit 4
58+
59+
echo -n $"Shutting down $prog: "
60+
killproc $prog
61+
RETVAL=$?
62+
echo
63+
[ $RETVAL -eq 0 ] && rm -f $lockfile
64+
return $RETVAL
65+
}
66+
67+
reload() {
68+
[ "$EUID" != "0" ] && exit 4
69+
70+
echo -n $"Reloading $prog: "
71+
killproc $prog -HUP
72+
RETVAL=$?
73+
echo
74+
return $RETVAL
75+
}
76+
77+
case "$1" in
78+
start)
79+
start
80+
;;
81+
stop)
82+
stop
83+
;;
84+
status)
85+
status $prog
86+
;;
87+
restart)
88+
stop
89+
start
90+
;;
91+
reload)
92+
reload
93+
;;
94+
*)
95+
echo $"Usage: $0 {start|stop|status|restart|reload}"
96+
exit 2
97+
;;
98+
esac
99+
exit $?

0 commit comments

Comments
 (0)