from-scratch 0.3.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Berksfile +2 -1
- data/Berksfile.lock +20 -1
- data/cookbooks/bluepill/CHANGELOG.md +93 -0
- data/cookbooks/bluepill/README.md +91 -0
- data/cookbooks/bluepill/attributes/default.rb +44 -0
- data/cookbooks/bluepill/metadata.json +1 -0
- data/cookbooks/bluepill/providers/service.rb +172 -0
- data/cookbooks/bluepill/recipes/default.rb +48 -0
- data/cookbooks/bluepill/recipes/rsyslog.rb +28 -0
- data/cookbooks/bluepill/resources/service.rb +27 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.fedora.erb +34 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.freebsd.erb +32 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.lsb.erb +37 -0
- data/cookbooks/bluepill/templates/default/bluepill_init.rhel.erb +34 -0
- data/cookbooks/bluepill/templates/default/bluepill_rsyslog.conf.erb +1 -0
- data/cookbooks/nginx/CHANGELOG.md +435 -0
- data/cookbooks/nginx/README.md +521 -0
- data/cookbooks/nginx/attributes/auth_request.rb +23 -0
- data/cookbooks/nginx/attributes/default.rb +131 -0
- data/cookbooks/nginx/attributes/devel.rb +24 -0
- data/cookbooks/nginx/attributes/echo.rb +24 -0
- data/cookbooks/nginx/attributes/geoip.rb +31 -0
- data/cookbooks/nginx/attributes/headers_more.rb +24 -0
- data/cookbooks/nginx/attributes/lua.rb +28 -0
- data/cookbooks/nginx/attributes/naxsi.rb +24 -0
- data/cookbooks/nginx/attributes/openssl_source.rb +23 -0
- data/cookbooks/nginx/attributes/pagespeed.rb +9 -0
- data/cookbooks/nginx/attributes/passenger.rb +58 -0
- data/cookbooks/nginx/attributes/rate_limiting.rb +23 -0
- data/cookbooks/nginx/attributes/repo.rb +35 -0
- data/cookbooks/nginx/attributes/set_misc.rb +8 -0
- data/cookbooks/nginx/attributes/socketproxy.rb +13 -0
- data/cookbooks/nginx/attributes/source.rb +42 -0
- data/cookbooks/nginx/attributes/status.rb +22 -0
- data/cookbooks/nginx/attributes/syslog.rb +24 -0
- data/cookbooks/nginx/attributes/upload_progress.rb +26 -0
- data/cookbooks/nginx/definitions/nginx_site.rb +50 -0
- data/cookbooks/nginx/files/default/mime.types +78 -0
- data/cookbooks/nginx/files/default/naxsi_core.rules +82 -0
- data/cookbooks/nginx/libraries/matchers.rb +20 -0
- data/cookbooks/nginx/metadata.json +351 -0
- data/cookbooks/nginx/recipes/authorized_ips.rb +32 -0
- data/cookbooks/nginx/recipes/commons.rb +24 -0
- data/cookbooks/nginx/recipes/commons_conf.rb +42 -0
- data/cookbooks/nginx/recipes/commons_dir.rb +57 -0
- data/cookbooks/nginx/recipes/commons_script.rb +29 -0
- data/cookbooks/nginx/recipes/default.rb +31 -0
- data/cookbooks/nginx/recipes/headers_more_module.rb +50 -0
- data/cookbooks/nginx/recipes/http_auth_request_module.rb +52 -0
- data/cookbooks/nginx/recipes/http_echo_module.rb +46 -0
- data/cookbooks/nginx/recipes/http_geoip_module.rb +113 -0
- data/cookbooks/nginx/recipes/http_gzip_static_module.rb +30 -0
- data/cookbooks/nginx/recipes/http_mp4_module.rb +2 -0
- data/cookbooks/nginx/recipes/http_perl_module.rb +23 -0
- data/cookbooks/nginx/recipes/http_realip_module.rb +38 -0
- data/cookbooks/nginx/recipes/http_spdy_module.rb +23 -0
- data/cookbooks/nginx/recipes/http_ssl_module.rb +23 -0
- data/cookbooks/nginx/recipes/http_stub_status_module.rb +36 -0
- data/cookbooks/nginx/recipes/ipv6.rb +23 -0
- data/cookbooks/nginx/recipes/lua.rb +47 -0
- data/cookbooks/nginx/recipes/naxsi_module.rb +52 -0
- data/cookbooks/nginx/recipes/ngx_devel_module.rb +44 -0
- data/cookbooks/nginx/recipes/ngx_lua_module.rb +47 -0
- data/cookbooks/nginx/recipes/ohai_plugin.rb +35 -0
- data/cookbooks/nginx/recipes/openssl_source.rb +45 -0
- data/cookbooks/nginx/recipes/package.rb +52 -0
- data/cookbooks/nginx/recipes/pagespeed_module.rb +62 -0
- data/cookbooks/nginx/recipes/passenger.rb +56 -0
- data/cookbooks/nginx/recipes/repo.rb +41 -0
- data/cookbooks/nginx/recipes/repo_passenger.rb +39 -0
- data/cookbooks/nginx/recipes/set_misc.rb +30 -0
- data/cookbooks/nginx/recipes/socketproxy.rb +26 -0
- data/cookbooks/nginx/recipes/source.rb +205 -0
- data/cookbooks/nginx/recipes/syslog_module.rb +69 -0
- data/cookbooks/nginx/recipes/upload_progress_module.rb +53 -0
- data/cookbooks/nginx/templates/debian/nginx.init.erb +97 -0
- data/cookbooks/nginx/templates/default/default-site.erb +11 -0
- data/cookbooks/nginx/templates/default/modules/authorized_ip.erb +6 -0
- data/cookbooks/nginx/templates/default/modules/http_geoip.conf.erb +4 -0
- data/cookbooks/nginx/templates/default/modules/http_gzip_static.conf.erb +1 -0
- data/cookbooks/nginx/templates/default/modules/http_realip.conf.erb +7 -0
- data/cookbooks/nginx/templates/default/modules/nginx_status.erb +14 -0
- data/cookbooks/nginx/templates/default/modules/passenger.conf.erb +13 -0
- data/cookbooks/nginx/templates/default/modules/socketproxy.conf.erb +89 -0
- data/cookbooks/nginx/templates/default/modules/upload_progress.erb +4 -0
- data/cookbooks/nginx/templates/default/nginx-upstart.conf.erb +39 -0
- data/cookbooks/nginx/templates/default/nginx.conf.erb +103 -0
- data/cookbooks/nginx/templates/default/nginx.init.erb +111 -0
- data/cookbooks/nginx/templates/default/nginx.pill.erb +15 -0
- data/cookbooks/nginx/templates/default/nginx.sysconfig.erb +1 -0
- data/cookbooks/nginx/templates/default/nxdissite.erb +29 -0
- data/cookbooks/nginx/templates/default/nxensite.erb +38 -0
- data/cookbooks/nginx/templates/default/plugins/nginx.rb.erb +66 -0
- data/cookbooks/nginx/templates/default/sv-nginx-log-run.erb +2 -0
- data/cookbooks/nginx/templates/default/sv-nginx-run.erb +4 -0
- data/cookbooks/nginx/templates/gentoo/nginx.init.erb +87 -0
- data/cookbooks/nginx/templates/suse/nginx.init.erb +115 -0
- data/cookbooks/nginx/templates/ubuntu/nginx.init.erb +97 -0
- data/cookbooks/ohai/CHANGELOG.md +69 -0
- data/cookbooks/ohai/README.md +89 -0
- data/cookbooks/ohai/attributes/default.rb +31 -0
- data/cookbooks/ohai/files/default/plugins/README +1 -0
- data/cookbooks/ohai/libraries/matchers.rb +14 -0
- data/cookbooks/ohai/metadata.json +1 -0
- data/cookbooks/ohai/providers/hint.rb +38 -0
- data/cookbooks/ohai/recipes/default.rb +52 -0
- data/cookbooks/ohai/resources/hint.rb +5 -0
- data/cookbooks/packagecloud/CHANGELOG.md +12 -0
- data/cookbooks/packagecloud/README.md +80 -0
- data/cookbooks/packagecloud/attributes/default.rb +8 -0
- data/cookbooks/packagecloud/libraries/helper.rb +43 -0
- data/cookbooks/packagecloud/libraries/matcher.rb +7 -0
- data/cookbooks/packagecloud/metadata.json +1 -0
- data/cookbooks/packagecloud/providers/repo.rb +212 -0
- data/cookbooks/packagecloud/resources/repo.rb +10 -0
- data/cookbooks/packagecloud/templates/.kitchen/logs/kitchen.log +29 -0
- data/cookbooks/packagecloud/templates/default/apt.erb +2 -0
- data/cookbooks/packagecloud/templates/default/yum.erb +15 -0
- data/cookbooks/rsyslog/CHANGELOG.md +193 -0
- data/cookbooks/rsyslog/README.md +276 -0
- data/cookbooks/rsyslog/attributes/default.rb +131 -0
- data/cookbooks/rsyslog/libraries/helpers.rb +25 -0
- data/cookbooks/rsyslog/metadata.json +1 -0
- data/cookbooks/rsyslog/providers/file_input.rb +44 -0
- data/cookbooks/rsyslog/recipes/client.rb +87 -0
- data/cookbooks/rsyslog/recipes/default.rb +89 -0
- data/cookbooks/rsyslog/recipes/server.rb +44 -0
- data/cookbooks/rsyslog/resources/file_input.rb +28 -0
- data/cookbooks/rsyslog/templates/default/35-server-per-host.conf.erb +62 -0
- data/cookbooks/rsyslog/templates/default/49-relp.conf.erb +10 -0
- data/cookbooks/rsyslog/templates/default/49-remote.conf.erb +30 -0
- data/cookbooks/rsyslog/templates/default/50-default.conf.erb +6 -0
- data/cookbooks/rsyslog/templates/default/file-input.conf.erb +15 -0
- data/cookbooks/rsyslog/templates/default/omnios-manifest.xml.erb +30 -0
- data/cookbooks/rsyslog/templates/default/rsyslog.conf.erb +117 -0
- data/cookbooks/rsyslog/templates/smartos/50-default.conf.erb +18 -0
- data/cookbooks/runit/.kitchen.cloud.yml +103 -0
- data/cookbooks/runit/.kitchen.yml +38 -0
- data/cookbooks/runit/.rspec +3 -0
- data/cookbooks/runit/.rubocop.yml +45 -0
- data/cookbooks/runit/Berksfile.disabled +11 -0
- data/cookbooks/runit/CHANGELOG.md +226 -0
- data/cookbooks/runit/CONTRIBUTING.md +266 -0
- data/cookbooks/runit/Cheffile +11 -0
- data/cookbooks/runit/Gemfile +17 -0
- data/cookbooks/runit/LICENSE +201 -0
- data/cookbooks/runit/README.md +435 -0
- data/cookbooks/runit/Rakefile +23 -0
- data/cookbooks/runit/TESTING.md +26 -0
- data/cookbooks/runit/attributes/default.rb +62 -0
- data/cookbooks/runit/files/default/runit.seed +1 -0
- data/cookbooks/runit/files/default/runsvdir +0 -0
- data/cookbooks/runit/files/ubuntu-6.10/runsvdir +6 -0
- data/cookbooks/runit/files/ubuntu-7.04/runsvdir +7 -0
- data/cookbooks/runit/files/ubuntu-7.10/runsvdir +7 -0
- data/cookbooks/runit/files/ubuntu-8.04/runsvdir +7 -0
- data/cookbooks/runit/libraries/default.rb +0 -0
- data/cookbooks/runit/libraries/helpers.rb +190 -0
- data/cookbooks/runit/libraries/matchers.rb +69 -0
- data/cookbooks/runit/libraries/provider_runit_service.rb +326 -0
- data/cookbooks/runit/libraries/resource_runit_service.rb +267 -0
- data/cookbooks/runit/metadata.json +50 -0
- data/cookbooks/runit/recipes/default.rb +91 -0
- data/cookbooks/runit/templates/debian/init.d.erb +66 -0
- data/cookbooks/runit/templates/default/log-config.erb +24 -0
- data/cookbooks/runit/templates/gentoo/runit-start.sh.erb +32 -0
- data/cookbooks/scratchify/Berksfile +2 -1
- data/cookbooks/scratchify/Berksfile.lock +20 -1
- data/cookbooks/scratchify/lib/from-scratch.rb +1 -4
- data/cookbooks/scratchify/lib/from-scratch/version.rb +1 -1
- data/cookbooks/scratchify/metadata.json +5 -2
- data/cookbooks/scratchify/recipes/default.rb +15 -1
- data/cookbooks/scratchify/recipes/nginx_site.rb +4 -0
- data/cookbooks/scratchify/recipes/pre_rvm.rb +5 -0
- data/cookbooks/scratchify/templates/nginx.erb +31 -0
- data/cookbooks/scratchify/templates/node.json.erb +21 -6
- data/cookbooks/yum-epel/CHANGELOG.md +84 -0
- data/cookbooks/yum-epel/README.md +172 -0
- data/cookbooks/yum-epel/attributes/default.rb +1 -0
- data/cookbooks/yum-epel/attributes/epel-debuginfo.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-source.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-testing-debuginfo.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-testing-source.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel-testing.rb +28 -0
- data/cookbooks/yum-epel/attributes/epel.rb +28 -0
- data/cookbooks/yum-epel/metadata.json +1 -0
- data/cookbooks/yum-epel/recipes/default.rb +61 -0
- data/cookbooks/yum/CHANGELOG.md +294 -0
- data/cookbooks/yum/README.md +285 -0
- data/cookbooks/yum/attributes/main.rb +100 -0
- data/cookbooks/yum/libraries/matchers.rb +27 -0
- data/cookbooks/yum/metadata.json +1 -0
- data/cookbooks/yum/providers/globalconfig.rb +41 -0
- data/cookbooks/yum/providers/repository.rb +106 -0
- data/cookbooks/yum/recipes/default.rb +26 -0
- data/cookbooks/yum/resources/globalconfig.rb +109 -0
- data/cookbooks/yum/resources/repository.rb +69 -0
- data/cookbooks/yum/templates/default/main.erb +276 -0
- data/cookbooks/yum/templates/default/repo.erb +125 -0
- data/lib/from-scratch.rb +1 -0
- data/lib/from-scratch/version.rb +1 -1
- data/metadata.rb +5 -1
- data/recipes/default.rb +15 -1
- data/recipes/nginx_site.rb +4 -0
- data/recipes/pre_rvm.rb +5 -0
- data/templates/nginx.erb +31 -0
- data/templates/node.json.erb +21 -6
- metadata +194 -1
@@ -0,0 +1,111 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# nginx
|
4
|
+
#
|
5
|
+
# chkconfig: - 57 47
|
6
|
+
# description: nginx
|
7
|
+
# processname: nginx
|
8
|
+
# config: /etc/sysconfig/nginx
|
9
|
+
#
|
10
|
+
|
11
|
+
# Source function library.
|
12
|
+
. /etc/rc.d/init.d/functions
|
13
|
+
|
14
|
+
# Source networking configuration.
|
15
|
+
. /etc/sysconfig/network
|
16
|
+
|
17
|
+
# Check that networking is up.
|
18
|
+
[ "$NETWORKING" = "no" ] && exit
|
19
|
+
exec=<%= node['nginx']['binary'] %>
|
20
|
+
prog=$(basename $exec)
|
21
|
+
|
22
|
+
# default options, overruled by items in sysconfig
|
23
|
+
NGINX_GLOBAL=""
|
24
|
+
|
25
|
+
[ -e /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
|
26
|
+
|
27
|
+
lockfile=/var/lock/subsys/nginx
|
28
|
+
|
29
|
+
start() {
|
30
|
+
[ -x $exec ] || exit 5
|
31
|
+
echo -n $"Starting $prog: "
|
32
|
+
# if not running, start it up here, usually something like "daemon $exec"
|
33
|
+
options=""
|
34
|
+
if [ "${NGINX_GLOBAL}" != "" ]; then
|
35
|
+
options="-g ${NGINX_GLOBAL}"
|
36
|
+
fi
|
37
|
+
$exec $options
|
38
|
+
retval=$?
|
39
|
+
echo
|
40
|
+
[ $retval -eq 0 ] && touch $lockfile
|
41
|
+
return $retval
|
42
|
+
}
|
43
|
+
|
44
|
+
stop() {
|
45
|
+
echo -n $"Stopping $prog: "
|
46
|
+
$exec -s stop
|
47
|
+
retval=$?
|
48
|
+
echo
|
49
|
+
[ $retval -eq 0 ] && rm -f $lockfile
|
50
|
+
return $retval
|
51
|
+
}
|
52
|
+
|
53
|
+
restart() {
|
54
|
+
stop
|
55
|
+
start
|
56
|
+
}
|
57
|
+
|
58
|
+
reload() {
|
59
|
+
echo -n $"Reloading $prog: "
|
60
|
+
$exec -s reload
|
61
|
+
retval=$?
|
62
|
+
echo
|
63
|
+
[ $retval -eq 0 ] && rm -f $lockfile
|
64
|
+
return $retval
|
65
|
+
}
|
66
|
+
|
67
|
+
configtest() {
|
68
|
+
if [ "$#" -ne 0 ] ; then
|
69
|
+
case "$1" in
|
70
|
+
-q)
|
71
|
+
FLAG=$1
|
72
|
+
;;
|
73
|
+
*)
|
74
|
+
;;
|
75
|
+
esac
|
76
|
+
shift
|
77
|
+
fi
|
78
|
+
${exec} -t $FLAG
|
79
|
+
RETVAL=$?
|
80
|
+
return $RETVAL
|
81
|
+
}
|
82
|
+
|
83
|
+
# See how we were called.
|
84
|
+
case "$1" in
|
85
|
+
start)
|
86
|
+
start
|
87
|
+
;;
|
88
|
+
stop)
|
89
|
+
stop
|
90
|
+
;;
|
91
|
+
status)
|
92
|
+
status nginx
|
93
|
+
;;
|
94
|
+
restart)
|
95
|
+
restart
|
96
|
+
;;
|
97
|
+
reload|force-reload)
|
98
|
+
reload
|
99
|
+
;;
|
100
|
+
condrestart)
|
101
|
+
[ -f $lockfile ] && restart || :
|
102
|
+
;;
|
103
|
+
configtest)
|
104
|
+
configtest
|
105
|
+
;;
|
106
|
+
*)
|
107
|
+
echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|configtest}"
|
108
|
+
exit 1
|
109
|
+
esac
|
110
|
+
|
111
|
+
exit $?
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Bluepill.application("nginx", :log_file => "<%= node['nginx']['log_dir'] %>/bluepill-nginx.log") do |app|
|
2
|
+
app.process("nginx") do |process|
|
3
|
+
process.pid_file = "<%= node['nginx']['pid'] %>"
|
4
|
+
process.working_dir = "<%= node['nginx']['source']['prefix'] %>"
|
5
|
+
process.start_command = "<%= node['nginx']['binary'] %> -c <%= node['nginx']['dir'] %>/nginx.conf"
|
6
|
+
process.stop_command = "kill -QUIT {{PID}}"
|
7
|
+
process.restart_command = "kill -HUP {{PID}}"
|
8
|
+
process.daemonize = true
|
9
|
+
process.stdout = process.stderr = "<%= node['nginx']['log_dir'] %>/nginx.log"
|
10
|
+
|
11
|
+
process.monitor_children do |child_process|
|
12
|
+
child_process.stop_command = "kill -QUIT {{PID}}"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
NGINX_GLOBAL=<%= node['nginx']['global'] %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
#!/bin/sh -e
|
2
|
+
|
3
|
+
SYSCONFDIR='<%= node['nginx']['dir'] %>'
|
4
|
+
|
5
|
+
if [ -z $1 ]; then
|
6
|
+
echo "Which site would you like to disable?"
|
7
|
+
echo -n "Your choices are: "
|
8
|
+
ls $SYSCONFDIR/sites-enabled/* | \
|
9
|
+
sed -e "s,$SYSCONFDIR/sites-enabled/,,g" | xargs echo
|
10
|
+
echo -n "Site name? "
|
11
|
+
read SITENAME
|
12
|
+
else
|
13
|
+
SITENAME=$1
|
14
|
+
fi
|
15
|
+
|
16
|
+
if [ $SITENAME = "default" ]; then
|
17
|
+
PRIORITY="000"
|
18
|
+
fi
|
19
|
+
|
20
|
+
if ! [ -e $SYSCONFDIR/sites-enabled/$SITENAME -o \
|
21
|
+
-e $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME" ]; then
|
22
|
+
echo "This site is already disabled, or does not exist!"
|
23
|
+
exit 1
|
24
|
+
fi
|
25
|
+
|
26
|
+
if ! rm $SYSCONFDIR/sites-enabled/$SITENAME 2>/dev/null; then
|
27
|
+
rm -f $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME"
|
28
|
+
fi
|
29
|
+
echo "Site $SITENAME disabled; reload nginx to disable."
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/bin/sh -e
|
2
|
+
|
3
|
+
SYSCONFDIR='<%= node['nginx']['dir'] %>'
|
4
|
+
|
5
|
+
if [ -z $1 ]; then
|
6
|
+
echo "Which site would you like to enable?"
|
7
|
+
echo -n "Your choices are: "
|
8
|
+
ls $SYSCONFDIR/sites-available/* | \
|
9
|
+
sed -e "s,$SYSCONFDIR/sites-available/,,g" | xargs echo
|
10
|
+
echo -n "Site name? "
|
11
|
+
read SITENAME
|
12
|
+
else
|
13
|
+
SITENAME=$1
|
14
|
+
fi
|
15
|
+
|
16
|
+
if [ $SITENAME = "default" ]; then
|
17
|
+
PRIORITY="000"
|
18
|
+
fi
|
19
|
+
|
20
|
+
if [ -e $SYSCONFDIR/sites-enabled/$SITENAME -o \
|
21
|
+
-e $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME" ]; then
|
22
|
+
echo "This site is already enabled!"
|
23
|
+
exit 0
|
24
|
+
fi
|
25
|
+
|
26
|
+
if ! [ -e $SYSCONFDIR/sites-available/$SITENAME ]; then
|
27
|
+
echo "This site does not exist!"
|
28
|
+
exit 1
|
29
|
+
fi
|
30
|
+
|
31
|
+
if [ $SITENAME = "default" ]; then
|
32
|
+
ln -sf $SYSCONFDIR/sites-available/$SITENAME \
|
33
|
+
$SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME"
|
34
|
+
else
|
35
|
+
ln -sf $SYSCONFDIR/sites-available/$SITENAME $SYSCONFDIR/sites-enabled/$SITENAME
|
36
|
+
fi
|
37
|
+
|
38
|
+
echo "Site $SITENAME installed; reload nginx to enable."
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Jamie Winsor (<jamie@vialstudios.com>)
|
3
|
+
#
|
4
|
+
# Copyright 2012, Riot Games
|
5
|
+
#
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
7
|
+
# you may not use this file except in compliance with the License.
|
8
|
+
# You may obtain a copy of the License at
|
9
|
+
#
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
11
|
+
#
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
14
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
15
|
+
# See the License for the specific language governing permissions and
|
16
|
+
# limitations under the License.
|
17
|
+
#
|
18
|
+
|
19
|
+
provides "nginx"
|
20
|
+
provides "nginx/version"
|
21
|
+
provides "nginx/configure_arguments"
|
22
|
+
provides "nginx/prefix"
|
23
|
+
provides "nginx/conf_path"
|
24
|
+
|
25
|
+
def parse_flags(flags)
|
26
|
+
prefix = nil
|
27
|
+
conf_path = nil
|
28
|
+
|
29
|
+
flags.each do |flag|
|
30
|
+
case flag
|
31
|
+
when /^--prefix=(.+)$/
|
32
|
+
prefix = $1
|
33
|
+
when /^--conf-path=(.+)$/
|
34
|
+
conf_path = $1
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
[ prefix, conf_path ]
|
39
|
+
end
|
40
|
+
|
41
|
+
nginx Mash.new unless nginx
|
42
|
+
nginx[:version] = nil unless nginx[:version]
|
43
|
+
nginx[:configure_arguments] = Array.new unless nginx[:configure_arguments]
|
44
|
+
nginx[:prefix] = nil unless nginx[:prefix]
|
45
|
+
nginx[:conf_path] = nil unless nginx[:conf_path]
|
46
|
+
|
47
|
+
status, stdout, stderr = run_command(:no_status_check => true, :command => "<%= node['nginx']['binary'] %> -V")
|
48
|
+
|
49
|
+
if status == 0
|
50
|
+
stderr.split("\n").each do |line|
|
51
|
+
case line
|
52
|
+
when /^configure arguments:(.+)/
|
53
|
+
# This could be better: I'm splitting on configure arguments which removes them and also
|
54
|
+
# adds a blank string at index 0 of the array. This is why we drop index 0 and map to
|
55
|
+
# add the '--' prefix back to the configure argument.
|
56
|
+
nginx[:configure_arguments] = $1.split(/\s--/).drop(1).map { |ca| "--#{ca}" }
|
57
|
+
|
58
|
+
prefix, conf_path = parse_flags(nginx[:configure_arguments])
|
59
|
+
|
60
|
+
nginx[:prefix] = prefix
|
61
|
+
nginx[:conf_path] = conf_path
|
62
|
+
when /^nginx version: nginx\/(\d+\.\d+\.\d+)/
|
63
|
+
nginx[:version] = $1
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
#!/sbin/runscript
|
2
|
+
# Copyright 1999-2012 Gentoo Foundation
|
3
|
+
# Distributed under the terms of the GNU General Public License v2
|
4
|
+
# $Header: /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx.initd,v 1.1 2012/02/11 10:17:30 hollow Exp $
|
5
|
+
|
6
|
+
extra_commands="configtest"
|
7
|
+
extra_started_commands="upgrade reload"
|
8
|
+
|
9
|
+
description="Robust, small and high performance http and reverse proxy server"
|
10
|
+
description_configtest="Run nginx' internal config check."
|
11
|
+
description_upgrade="Upgrade the nginx binary without losing connections."
|
12
|
+
description_reload="Reload the nginx configuration without losing connections."
|
13
|
+
|
14
|
+
nginx_config=<%= node['nginx']['source']['conf_path'] %>
|
15
|
+
|
16
|
+
command=<%= node['nginx']['binary'] %>
|
17
|
+
command_args="-c ${nginx_config}"
|
18
|
+
pidfile=<%= node['nginx']['pid'] %>
|
19
|
+
|
20
|
+
depend() {
|
21
|
+
need net
|
22
|
+
use dns logger netmount
|
23
|
+
}
|
24
|
+
|
25
|
+
start_pre() {
|
26
|
+
if [ "${RC_CMD}" != "restart" ]; then
|
27
|
+
configtest || return 1
|
28
|
+
fi
|
29
|
+
}
|
30
|
+
|
31
|
+
stop_pre() {
|
32
|
+
if [ "${RC_CMD}" = "restart" ]; then
|
33
|
+
configtest || return 1
|
34
|
+
fi
|
35
|
+
}
|
36
|
+
|
37
|
+
stop_post() {
|
38
|
+
rm -f ${pidfile}
|
39
|
+
}
|
40
|
+
|
41
|
+
reload() {
|
42
|
+
configtest || return 1
|
43
|
+
ebegin "Refreshing nginx' configuration"
|
44
|
+
kill -HUP `cat ${pidfile}` &>/dev/null
|
45
|
+
eend $? "Failed to reload nginx"
|
46
|
+
}
|
47
|
+
|
48
|
+
upgrade() {
|
49
|
+
configtest || return 1
|
50
|
+
ebegin "Upgrading nginx"
|
51
|
+
|
52
|
+
einfo "Sending USR2 to old binary"
|
53
|
+
kill -USR2 `cat ${pidfile}` &>/dev/null
|
54
|
+
|
55
|
+
einfo "Sleeping 3 seconds before pid-files checking"
|
56
|
+
sleep 3
|
57
|
+
|
58
|
+
if [ ! -f ${pidfile}.oldbin ]; then
|
59
|
+
eerror "File with old pid not found"
|
60
|
+
return 1
|
61
|
+
fi
|
62
|
+
|
63
|
+
if [ ! -f ${pidfile} ]; then
|
64
|
+
eerror "New binary failed to start"
|
65
|
+
return 1
|
66
|
+
fi
|
67
|
+
|
68
|
+
einfo "Sleeping 3 seconds before WINCH"
|
69
|
+
sleep 3 ; kill -WINCH `cat ${pidfile}.oldbin`
|
70
|
+
|
71
|
+
einfo "Sending QUIT to old binary"
|
72
|
+
kill -QUIT `cat ${pidfile}.oldbin`
|
73
|
+
|
74
|
+
einfo "Upgrade completed"
|
75
|
+
eend $? "Upgrade failed"
|
76
|
+
}
|
77
|
+
|
78
|
+
configtest() {
|
79
|
+
ebegin "Checking nginx' configuration"
|
80
|
+
${command} -c ${nginx_config} -t -q
|
81
|
+
|
82
|
+
if [ $? -ne 0 ]; then
|
83
|
+
${command} -c ${nginx_config} -t
|
84
|
+
fi
|
85
|
+
|
86
|
+
eend $? "failed, please correct errors above"
|
87
|
+
}
|
@@ -0,0 +1,115 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
#
|
3
|
+
# nginx
|
4
|
+
#
|
5
|
+
### BEGIN INIT INFO
|
6
|
+
# Provides: nginx
|
7
|
+
# Required-Start: $local_fs $remote_fs $network $syslog
|
8
|
+
# Required-Stop: $local_fs $remote_fs $network $syslog
|
9
|
+
# Default-Start: 2 3 4 5
|
10
|
+
# Default-Stop: 0 1 6
|
11
|
+
# Short-Description: starts the nginx web server
|
12
|
+
# Description: starts nginx using start-stop-daemon
|
13
|
+
### END INIT INFO
|
14
|
+
|
15
|
+
# Source function library.
|
16
|
+
. /etc/rc.status
|
17
|
+
|
18
|
+
rc_reset
|
19
|
+
|
20
|
+
# Check that networking is up.
|
21
|
+
[ "$NETWORKING" = "no" ] && exit
|
22
|
+
exec=<%= node['nginx']['binary'] %>
|
23
|
+
prog=$(basename $exec)
|
24
|
+
|
25
|
+
# default options, overruled by items in sysconfig
|
26
|
+
NGINX_GLOBAL=""
|
27
|
+
|
28
|
+
[ -e /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
|
29
|
+
|
30
|
+
lockfile=/var/lock/subsys/nginx
|
31
|
+
|
32
|
+
start() {
|
33
|
+
[ -x $exec ] || exit 5
|
34
|
+
echo -n $"Starting $prog: "
|
35
|
+
# if not running, start it up here, usually something like "daemon $exec"
|
36
|
+
options=""
|
37
|
+
if [ "${NGINX_GLOBAL}" != "" ]; then
|
38
|
+
options="-g ${NGINX_GLOBAL}"
|
39
|
+
fi
|
40
|
+
$exec $options
|
41
|
+
retval=$?
|
42
|
+
echo
|
43
|
+
[ $retval -eq 0 ] && touch $lockfile
|
44
|
+
rc_status -v
|
45
|
+
}
|
46
|
+
|
47
|
+
stop() {
|
48
|
+
echo -n $"Stopping $prog: "
|
49
|
+
$exec -s stop
|
50
|
+
retval=$?
|
51
|
+
echo
|
52
|
+
[ $retval -eq 0 ] && rm -f $lockfile
|
53
|
+
rc_status -v
|
54
|
+
}
|
55
|
+
|
56
|
+
restart() {
|
57
|
+
stop
|
58
|
+
start
|
59
|
+
rc_status
|
60
|
+
}
|
61
|
+
|
62
|
+
reload() {
|
63
|
+
echo -n $"Reloading $prog: "
|
64
|
+
$exec -s reload
|
65
|
+
retval=$?
|
66
|
+
echo
|
67
|
+
[ $retval -eq 0 ] && rm -f $lockfile
|
68
|
+
rc_status -v
|
69
|
+
}
|
70
|
+
|
71
|
+
configtest() {
|
72
|
+
if [ "$#" -ne 0 ] ; then
|
73
|
+
case "$1" in
|
74
|
+
-q)
|
75
|
+
FLAG=$1
|
76
|
+
;;
|
77
|
+
*)
|
78
|
+
;;
|
79
|
+
esac
|
80
|
+
shift
|
81
|
+
fi
|
82
|
+
${exec} -t $FLAG
|
83
|
+
RETVAL=$?
|
84
|
+
return $RETVAL
|
85
|
+
}
|
86
|
+
|
87
|
+
# See how we were called.
|
88
|
+
case "$1" in
|
89
|
+
start)
|
90
|
+
start
|
91
|
+
;;
|
92
|
+
stop)
|
93
|
+
stop
|
94
|
+
;;
|
95
|
+
status)
|
96
|
+
status nginx
|
97
|
+
;;
|
98
|
+
restart)
|
99
|
+
restart
|
100
|
+
;;
|
101
|
+
reload|force-reload)
|
102
|
+
reload
|
103
|
+
;;
|
104
|
+
condrestart)
|
105
|
+
[ -f $lockfile ] && restart || :
|
106
|
+
;;
|
107
|
+
configtest)
|
108
|
+
configtest
|
109
|
+
;;
|
110
|
+
*)
|
111
|
+
echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart|configtest}"
|
112
|
+
exit 1
|
113
|
+
esac
|
114
|
+
|
115
|
+
exit $?
|