Commit 60d5f4b
Changed files (8)
attributes
files
default
recipes
spec
templates
default
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: