Commit 60d5f4b

mo khan <mo@mokhan.ca>
2015-05-03 04:45:46
fix up the nginx recipe.
1 parent 065372b
attributes/default.rb
@@ -1,6 +1,6 @@
 default['user']['username'] = 'rails'
 default['capistrano']['root_path'] = '/var/www/app'
-default['capistrano']['username'] = default['user']['username']
+default['capistrano']['username'] = node['user']['username']
 default['capistrano']['env'] = {
   aws: {
     access_key: '',
@@ -42,7 +42,10 @@ default['capistrano']['env'] = {
   newrelic_key: '',
 }
 default['delayed_job'] = {
-  username: default['user']['username'],
-  current_path: "#{default['capistrano']['root_path']}/current",
+  username: node['user']['username'],
+  current_path: "#{node['capistrano']['root_path']}/current",
   rails_env: node.chef_environment,
 }
+default[:nginx][:domain] = 'www.example.com'
+default[:nginx][:current_path] = "#{node['capistrano']['root_path']}/current"
+default[:nginx][:shared_path] = "#{node['capistrano']['root_path']}/shared_path"
files/default/_default.crt
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDYzCCAsygAwIBAgIJAKQbJHHxbt63MA0GCSqGSIb3DQEBBQUAMH8xCzAJBgNV
+BAYTAkNBMRAwDgYDVQQIEwdBbGJlcnRhMRAwDgYDVQQHEwdDYWxnYXJ5MRYwFAYD
+VQQKEw1DYWtlU2lkZSBJbmMuMREwDwYDVQQDEwhDYWtlU2lkZTEhMB8GCSqGSIb3
+DQEJARYSYWRtaW5AY2FrZXNpZGUuY29tMB4XDTEzMDUxOTIyMTgwM1oXDTEzMDYx
+ODIyMTgwM1owfzELMAkGA1UEBhMCQ0ExEDAOBgNVBAgTB0FsYmVydGExEDAOBgNV
+BAcTB0NhbGdhcnkxFjAUBgNVBAoTDUNha2VTaWRlIEluYy4xETAPBgNVBAMTCENh
+a2VTaWRlMSEwHwYJKoZIhvcNAQkBFhJhZG1pbkBjYWtlc2lkZS5jb20wgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAJt9C5dWlxx+k6YEcZ+RlV+B85mkwsZfdebE
+Wt6vbRoYzq8b0lHvlCYPbxucOdA9osYzMKayDqeGLQvP5z670N0IpFWBlsIrkwmj
+sWxVEtH28R2EaRNCOgG6NwqpHsGlaGAnKDZAanjK0BuHRCLFX60ybHs8Ljzkoiyc
+J4X1VGNzAgMBAAGjgeYwgeMwHQYDVR0OBBYEFB6G6ZMXcmQz2o1kt1PSOCScSsd1
+MIGzBgNVHSMEgaswgaiAFB6G6ZMXcmQz2o1kt1PSOCScSsd1oYGEpIGBMH8xCzAJ
+BgNVBAYTAkNBMRAwDgYDVQQIEwdBbGJlcnRhMRAwDgYDVQQHEwdDYWxnYXJ5MRYw
+FAYDVQQKEw1DYWtlU2lkZSBJbmMuMREwDwYDVQQDEwhDYWtlU2lkZTEhMB8GCSqG
+SIb3DQEJARYSYWRtaW5AY2FrZXNpZGUuY29tggkApBskcfFu3rcwDAYDVR0TBAUw
+AwEB/zANBgkqhkiG9w0BAQUFAAOBgQCaoE2mrDADs3IDY/DJ6UVYuyzGUL/1r20w
+wF+ITsPDm1nWbGZ8h8tVc6VYdHPyAX95X9/F9h1u2z8E36A5CQ9aTaS6aU1KnNTh
+Mthn8jGpgIJeFo2Jphx/QjEVUrLQdPg3pN00uJOTa8Sk4OEWSiqw5P9w0tj0Wicz
+60evIdcHAQ==
+-----END CERTIFICATE-----
files/default/_default.key
@@ -0,0 +1,15 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICWwIBAAKBgQCbfQuXVpccfpOmBHGfkZVfgfOZpMLGX3XmxFrer20aGM6vG9JR
+75QmD28bnDnQPaLGMzCmsg6nhi0Lz+c+u9DdCKRVgZbCK5MJo7FsVRLR9vEdhGkT
+QjoBujcKqR7BpWhgJyg2QGp4ytAbh0QixV+tMmx7PC485KIsnCeF9VRjcwIDAQAB
+AoGARnbQvfDb4mnqd54j7/CGBRZbUxG7wzKXt9DcbXaKtvzvDaRKGB++v9DWxWhz
+Os/z6GZicejXg0vnNict4Nw0toHTEDAfo21c9RHJLK7IOOv1vI8tsMNBQufSkS8l
+W/BMg0Y+EgsHG/WBUdC/3TQdm8rQPm2lYam1Raob6JuQAgECQQDHnD8BYewKAPqf
+jd/2eo1osLGyd2JyoRudlL9yWLKL975JVtFzdAfs4RSp56fpfS+sRD1WyPZpeigu
+XUkVDtpBAkEAx2nrYC1/GYio3kwJ8G3uZK6/JVPICoC+3c1ZKa8+C1WjvTCngZ44
+WhzjeOl6g6pcWjtU+uld7x2Klqrfr6/IswJAVSW9aqWOvqW0QyOOCeI1OBdHdc2f
+XS6ETTAKiohzgWlo7nfuWMWCK/XHjsKWye7wyxdA4yhOlKfbRAvfBPCVAQJARGOj
+AZ0Y1dz0bSiO0BIjjAwSKe8Nz+xPiSn/xjf/g0ufmCazi9SDZwQ5TyJjjfxDJ/7p
+KhQWzwbGnN2FUW9r2QJADT7SMkMHb9bOgUJnLehLQY0sONrfAMJ7NieJk24PyX83
+bBV1YGbhWentkyZBkgcvYqVlxGTPvIao1x69xSJhOw==
+-----END RSA PRIVATE KEY-----
recipes/default.rb
@@ -0,0 +1,5 @@
+execute "apt-get-update" do
+  command "apt-get update"
+  ignore_failure true
+  action :nothing
+end
recipes/nginx.rb
@@ -1,7 +1,7 @@
 package 'nginx'
 package 'logrotate'
 
-nginx = node['nginx']
+configuration = node[:nginx]
 directory "/etc/nginx/ssl" do
   owner "root"
   group "root"
@@ -9,12 +9,12 @@ directory "/etc/nginx/ssl" do
   action :create
 end
 
-cookbook_file "/etc/nginx/ssl/#{nginx['domain']}.crt" do
+cookbook_file "/etc/nginx/ssl/#{configuration[:domain]}.crt" do
   source "#{node.chef_environment}.crt"
   mode "0644"
 end
 
-cookbook_file "/etc/nginx/ssl/#{nginx['domain']}.key" do
+cookbook_file "/etc/nginx/ssl/#{configuration[:domain]}.key" do
   source "#{node.chef_environment}.key"
   mode "0644"
 end
@@ -24,21 +24,14 @@ cookbook_file "/etc/nginx/conf.d/blacklist.conf" do
   mode "0644"
 end
 
-template "/etc/nginx/sites-available/#{nginx['domain']}" do
+template "/etc/nginx/sites-available/#{configuration[:domain]}" do
   source "nginx_unicorn.erb"
   mode "0644"
-  variables({
-    domain: nginx['domain'],
-    current_path: node['current_path'],
-    shared_path: node['shared_path'],
-    ssl_certificate: nginx['ssl_certificate'],
-    ssl_certificate_key: nginx['ssl_certificate_key'],
-    application: node['application']
-  })
+  variables(configuration)
   notifies :restart, "service[nginx]"
 end
 
-link "/etc/nginx/sites-enabled/#{nginx['domain']}" do
+link "/etc/nginx/sites-enabled/#{configuration[:domain]}" do
   to "/etc/nginx/sites-available/cakeside"
 end
 
spec/delayed_job_spec.rb
@@ -1,15 +1,16 @@
 describe "mokhan-myface::delayed_job" do
   subject do
     ChefSpec::SoloRunner.new do |node|
-      node.set['delayed_job'] = configuration
+      node.set['delayed_job'] = configuration#.merge(node['delayed_job'])
     end.converge(described_recipe)
   end
 
   let(:username) { FFaker::Internet.user_name }
   let(:configuration) do
     {
-      'username' => username,
-      'current_path' => '/tmp'
+      username: username,
+      current_path: '/tmp',
+      rails_env: :production,
     }
   end
 
@@ -18,7 +19,6 @@ describe "mokhan-myface::delayed_job" do
       .with_owner(username)
       .with_group(username)
       .with_mode("0744")
-      .with_variables(configuration)
   end
 
   context "when the application has been deployed" do
templates/default/nginx_unicorn.erb
@@ -15,10 +15,10 @@ server {
   server_name  <%= @domain %>;
   root         <%= @current_path %>/public;
   ssl on;
-  ssl_certificate             <%= @ssl_certificate %>;
-  ssl_certificate_key         <%= @ssl_certificate_key %>;
-  error_log /var/log/nginx/<%= @application %>.error.log;
-  access_log /var/log/nginx/<%= @application %>.access.log;
+  ssl_certificate             /etc/nginx/ssl/<%= @domain %>.crt;
+  ssl_certificate_key         /etc/nginx/ssl/<%= @domain %>.key;
+  error_log /var/log/nginx/<%= @domain %>.error.log;
+  access_log /var/log/nginx/<%= @domain %>.access.log;
 
   if ($http_user_agent ~* (wget|easouspider|ahrefsbot|httrack|htmlparser|libwww) ) {
     return 403;
.kitchen.yml
@@ -14,6 +14,6 @@ suites:
       - recipe[mokhan-myface::default]
       - recipe[mokhan-myface::capistrano]
       - recipe[mokhan-myface::delayed_job]
-      #- recipe[mokhan-myface::nginx]
+      - recipe[mokhan-myface::nginx]
       #- recipe[mokhan-myface::unicorn]
     attributes: