Skip to content

Instantly share code, notes, and snippets.

@saimonmoore
Created March 25, 2011 22:08
Show Gist options
  • Save saimonmoore/887733 to your computer and use it in GitHub Desktop.
Save saimonmoore/887733 to your computer and use it in GitHub Desktop.
opscode nginx recipe
include_recipe "build-essential"
include_recipe "runit"
%w{ libpcre3 libpcre3-dev libssl-dev}.each do |devpkg|
package devpkg
end
nginx_version = node[:nginx][:version]
configure_flags = node[:nginx][:configure_flags].join(" ")
node.set[:nginx][:daemon_disable] = true
remote_file "/tmp/nginx-#{nginx_version}.tar.gz" do
source "http://sysoev.ru/nginx/nginx-#{nginx_version}.tar.gz"
action :create_if_missing
end
bash "compile_nginx_source" do
cwd "/tmp"
code <<-EOH
tar zxf nginx-#{nginx_version}.tar.gz
cd nginx-#{nginx_version} && ./configure #{configure_flags}
make && make install
EOH
creates node[:nginx][:src_binary]
end
directory node[:nginx][:log_dir] do
mode 0755
owner node[:nginx][:user]
action :create
end
directory node[:nginx][:dir] do
owner "root"
group "root"
mode "0755"
end
runit_service "nginx"
service "nginx" do
subscribes :restart, resources(:bash => "compile_nginx_source")
end
%w{ sites-available sites-enabled conf.d }.each do |dir|
directory "#{node[:nginx][:dir]}/#{dir}" do
owner "root"
group "root"
mode "0755"
end
end
%w{nxensite nxdissite}.each do |nxscript|
template "/usr/sbin/#{nxscript}" do
source "#{nxscript}.erb"
mode "0755"
owner "root"
group "root"
end
end
template "nginx.conf" do
path "#{node[:nginx][:dir]}/nginx.conf"
source "nginx.conf.erb"
owner "root"
group "root"
mode "0644"
notifies :restart, resources(:service => "nginx")
end
remote_file "#{node[:nginx][:dir]}/mime.types" do
source "mime.types"
owner "root"
group "root"
mode "0644"
notifies :restart, resources(:service => "nginx")
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment