diff --git a/.rubocop.yml b/.rubocop.yml index 29f63a0..f7f730b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,5 @@ Metrics/LineLength: + Max: 85 Exclude: - 'test/integration/default/serverspec/nginx_spec.rb' Style/WordArray: diff --git a/metadata.rb b/metadata.rb index 3e4ca3c..4f4aeac 100644 --- a/metadata.rb +++ b/metadata.rb @@ -18,3 +18,4 @@ depends 'yum-epel', '>= 0.3.6' depends 'yum-nginx' depends 'zap', '>= 0.6.0' +depends 'apt-nginx' diff --git a/recipes/_repo.rb b/recipes/_repo.rb index 4db8fe6..b8b9e5d 100644 --- a/recipes/_repo.rb +++ b/recipes/_repo.rb @@ -1,12 +1,26 @@ +unless node['platform_family'] == 'rhel' || node['platform_family'] == 'debian' + Chef::Application.fatal!("Unsupported Linux distribution - #{node['platform']}", 1) +end + case node['nginx_server']['repo'] -when 'epel' +when 'epel' && node.platform_family?('rhel') include_recipe 'yum-epel::default' when 'nginx-stable' - include_recipe 'yum-nginx::default' + if node.platform_family?('rhel') + include_recipe 'yum-nginx::default' + else + include_recipe 'apt-nginx::default' + end when 'nginx-mainline' - node.default['yum-nginx']['repos']['nginx-stable']['managed'] = false - node.default['yum-nginx']['repos']['nginx-mainline']['managed'] = true - include_recipe 'yum-nginx::default' + if node.platform_family?('rhel') + node.default['yum-nginx']['repos']['nginx-stable']['managed'] = false + node.default['yum-nginx']['repos']['nginx-mainline']['managed'] = true + include_recipe 'yum-nginx::default' + else + node.default['apt-nginx']['repos']['nginx-stable']['managed'] = false + node.default['apt-nginx']['repos']['nginx-mainline']['managed'] = true + include_recipe 'apt-nginx::default' + end else Chef::Application.fatal!("#{node['nginx_server']['repo']} is not an allowed value for node['nginx_server']['repo'].", 1) diff --git a/recipes/default.rb b/recipes/default.rb index 9ae18a1..d63fcb7 100644 --- a/recipes/default.rb +++ b/recipes/default.rb @@ -8,6 +8,21 @@ # include_recipe 'nginx_server::_repo' if node['nginx_server']['manage_repo'] +# Workaround for Ubuntu 15.10 not creating nginx user and group. +user 'nginx' do + action :create + comment 'nginx user' + home '/nonexistent' + shell '/bin/false' + manage_home false + only_if { node['platform'] == 'ubuntu' && node['platform_version'].to_f == 15.10 } +end + +group 'nginx' do + action :create + only_if { node['platform'] == 'ubuntu' && node['platform_version'].to_f == 15.10 } +end + package 'nginx' template '/etc/nginx/nginx.conf' do