33 lines
		
	
	
		
			833 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			833 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
#
 | 
						|
# Cookbook:: kosmos_drone
 | 
						|
# Recipe:: nginx
 | 
						|
#
 | 
						|
 | 
						|
domain = node["kosmos_drone"]["domain"]
 | 
						|
 | 
						|
upstream_ip_addresses = []
 | 
						|
search(:node, "role:drone").each do |n|
 | 
						|
  upstream_ip_addresses << n["knife_zero"]["host"]
 | 
						|
end
 | 
						|
# No Discourse host, stop here
 | 
						|
return if upstream_ip_addresses.empty?
 | 
						|
 | 
						|
nginx_certbot_site domain
 | 
						|
 | 
						|
template "#{node['nginx']['dir']}/sites-available/#{domain}" do
 | 
						|
  source "nginx_conf.erb"
 | 
						|
  owner 'www-data'
 | 
						|
  mode 0640
 | 
						|
  variables server_name:   domain,
 | 
						|
            upstream_ip_addresses: upstream_ip_addresses,
 | 
						|
            upstream_port: node["kosmos_drone"]["upstream_port"],
 | 
						|
            ssl_cert:      "/etc/letsencrypt/live/#{domain}/fullchain.pem",
 | 
						|
            ssl_key:       "/etc/letsencrypt/live/#{domain}/privkey.pem"
 | 
						|
 | 
						|
  notifies :reload, 'service[nginx]', :delayed
 | 
						|
end
 | 
						|
 | 
						|
nginx_site domain do
 | 
						|
  action :enable
 | 
						|
end
 |