Commit 685ad1b

mo khan <mo@mokhan.ca>
2015-05-02 03:43:02
start to work on nginx recipe.
1 parent e7dc6bc
Changed files (2)
recipes/nginx.rb
@@ -0,0 +1,25 @@
+package 'nginx' do
+  action :install
+end
+
+directory "/etc/nginx/ssl" do
+  owner "root"
+  group "root"
+  mode "0644"
+  action :create
+end
+
+cookbook_file "/etc/nginx/ssl/#{node['nginx']['domain']}.crt" do
+  source "#{node.chef_environment}.crt"
+  mode "0644"
+end
+
+cookbook_file "/etc/nginx/ssl/#{node['nginx']['domain']}.key" do
+  source "#{node.chef_environment}.key"
+  mode "0644"
+end
+
+cookbook_file "/etc/nginx/conf.d/blacklist.conf" do
+  source "blacklist.conf"
+  mode "0644"
+end
spec/nginx_spec.rb
@@ -0,0 +1,33 @@
+describe 'mokhan-myface::nginx' do
+  let(:chef_run) do 
+    ChefSpec::SoloRunner.new do |node|
+      node.set['nginx']['domain'] = 'www.example.com'
+    end.converge(described_recipe)
+  end
+
+  it 'installs nginx' do
+    expect(chef_run).to install_package("nginx")
+  end
+
+  it 'creates a directory for the ssl certificates' do
+    expect(chef_run).to create_directory('/etc/nginx/ssl')
+      .with_owner('root')
+      .with_group('root')
+      .with_mode('0644')
+  end
+
+  it 'copies the ssl certificate' do
+    expect(chef_run).to create_cookbook_file("/etc/nginx/ssl/www.example.com.crt")
+      .with_mode("0644")
+  end
+
+  it 'copies the ssl private key' do
+    expect(chef_run).to create_cookbook_file("/etc/nginx/ssl/www.example.com.key")
+      .with_mode("0644")
+  end
+
+  it 'copies over the blacklist file' do
+    expect(chef_run).to create_cookbook_file("/etc/nginx/conf.d/blacklist.conf")
+      .with_mode("0644")
+  end
+end