Move each vhost to its own config file
This commit is contained in:
		
							parent
							
								
									463664448c
								
							
						
					
					
						commit
						38f39af2a4
					
				@ -104,6 +104,12 @@ modules:
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ldap_domain = node['kosmos-dirsrv']['master_hostname']
 | 
				
			||||||
 | 
					ldap_encryption_type = node.chef_environment == "development" ? "none" : "tls"
 | 
				
			||||||
 | 
					ldap_base = "cn=users,dc=kosmos,dc=org"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					admin_users = ejabberd_credentials['admins']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hosts.each do |host|
 | 
					hosts.each do |host|
 | 
				
			||||||
  postgresql_database host[:sql_database] do
 | 
					  postgresql_database host[:sql_database] do
 | 
				
			||||||
    owner 'ejabberd'
 | 
					    owner 'ejabberd'
 | 
				
			||||||
@ -116,14 +122,21 @@ hosts.each do |host|
 | 
				
			|||||||
    command "psql #{host[:sql_database]}} < #{Chef::Config[:file_cache_path]}/pg.sql"
 | 
					    command "psql #{host[:sql_database]}} < #{Chef::Config[:file_cache_path]}/pg.sql"
 | 
				
			||||||
    action :nothing
 | 
					    action :nothing
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  template "/opt/ejabberd/conf/#{host[:name]}.yml" do
 | 
				
			||||||
 | 
					    source    "vhost.yml.erb"
 | 
				
			||||||
 | 
					    mode      0640
 | 
				
			||||||
 | 
					    owner     'ejabberd'
 | 
				
			||||||
 | 
					    group     'ejabberd'
 | 
				
			||||||
 | 
					    sensitive true
 | 
				
			||||||
 | 
					    variables pgsql_password: postgresql_data_bag_item['ejabberd_user_password'],
 | 
				
			||||||
 | 
					              host: host,
 | 
				
			||||||
 | 
					              ldap_base: ldap_base,
 | 
				
			||||||
 | 
					              ldap_server: ldap_domain,
 | 
				
			||||||
 | 
					              ldap_encryption_type: ldap_encryption_type
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ldap_domain = node['kosmos-dirsrv']['master_hostname']
 | 
					 | 
				
			||||||
ldap_encryption_type = node.chef_environment == "development" ? "none" : "tls"
 | 
					 | 
				
			||||||
ldap_base = "cn=users,dc=kosmos,dc=org"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
admin_users = ejabberd_credentials['admins']
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
template "/opt/ejabberd/conf/ejabberd.yml" do
 | 
					template "/opt/ejabberd/conf/ejabberd.yml" do
 | 
				
			||||||
  source    "ejabberd.yml.erb"
 | 
					  source    "ejabberd.yml.erb"
 | 
				
			||||||
  mode      0640
 | 
					  mode      0640
 | 
				
			||||||
 | 
				
			|||||||
@ -6,40 +6,10 @@ log_rotate_count: 1
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
log_rate_limit: 100
 | 
					log_rate_limit: 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hosts:
 | 
					 | 
				
			||||||
<% @hosts.each do |host| -%>
 | 
					<% @hosts.each do |host| -%>
 | 
				
			||||||
  - "<%= host[:name] %>"
 | 
					include_config_file: "/opt/ejabberd/conf/<%= host[:name] %>.yml"
 | 
				
			||||||
<% end -%>
 | 
					<% end -%>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
host_config:
 | 
					 | 
				
			||||||
<% @hosts.each do |host| -%>
 | 
					 | 
				
			||||||
  "<%= host[:name] %>":
 | 
					 | 
				
			||||||
    sql_type: pgsql
 | 
					 | 
				
			||||||
    sql_server: "localhost"
 | 
					 | 
				
			||||||
    sql_database: "<%= host[:sql_database] %>"
 | 
					 | 
				
			||||||
    sql_username: "ejabberd"
 | 
					 | 
				
			||||||
    sql_password: "<%= @pgsql_password %>"
 | 
					 | 
				
			||||||
  <% if host[:ldap_enabled] -%>
 | 
					 | 
				
			||||||
    auth_method: ldap
 | 
					 | 
				
			||||||
    ldap_servers: ["<%= @ldap_server %>"]
 | 
					 | 
				
			||||||
    ldap_rootdn: "cn=xmpp,ou=<%= host[:name] %>,<%= @ldap_base %>"
 | 
					 | 
				
			||||||
    ldap_password: "<%= host[:ldap_password] %>"
 | 
					 | 
				
			||||||
    ldap_encrypt: <%= @ldap_encryption_type %>
 | 
					 | 
				
			||||||
    ldap_tls_verify: hard # when TLS is enabled, don't proceed if a cert is invalid
 | 
					 | 
				
			||||||
    ldap_base: "ou=<%= host[:name] %>,<%= @ldap_base %>"
 | 
					 | 
				
			||||||
    ldap_filter: "(nsRole=cn=xmpp_role,ou=<%= host[:name] %>,<%= @ldap_base %>)"
 | 
					 | 
				
			||||||
  <% end -%>
 | 
					 | 
				
			||||||
<% end -%>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<% if @hosts.any? { |host| File.exist?("/opt/ejabberd/conf/#{host[:name]}.crt") && File.exist?("/opt/ejabberd/conf/#{host[:name]}.key") } -%>
 | 
					 | 
				
			||||||
certfiles:
 | 
					 | 
				
			||||||
<% @hosts.each do |host| -%>
 | 
					 | 
				
			||||||
  <% if File.exist?("/opt/ejabberd/conf/#{host[:name]}.crt") && File.exist?("/opt/ejabberd/conf/#{host[:name]}.key") -%>
 | 
					 | 
				
			||||||
  - "/opt/ejabberd/conf/<%= host[:name] %>.crt"
 | 
					 | 
				
			||||||
  - "/opt/ejabberd/conf/<%= host[:name] %>.key"
 | 
					 | 
				
			||||||
  <% end -%>
 | 
					 | 
				
			||||||
<% end -%>
 | 
					 | 
				
			||||||
<% end -%>
 | 
					 | 
				
			||||||
ca_file: "/opt/ejabberd/conf/cacert.pem"
 | 
					ca_file: "/opt/ejabberd/conf/cacert.pem"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
define_macro:
 | 
					define_macro:
 | 
				
			||||||
@ -248,12 +218,6 @@ modules:
 | 
				
			|||||||
  mod_s2s_dialback: {}
 | 
					  mod_s2s_dialback: {}
 | 
				
			||||||
  mod_http_api: {}
 | 
					  mod_http_api: {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
append_host_config:
 | 
					 | 
				
			||||||
<% @hosts.each do |host| -%>
 | 
					 | 
				
			||||||
  "<%= host[:name] %>":
 | 
					 | 
				
			||||||
    <%= host[:append_host_config].chomp %>
 | 
					 | 
				
			||||||
<% end -%>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
allow_contrib_modules: true
 | 
					allow_contrib_modules: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Local Variables:
 | 
					### Local Variables:
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										31
									
								
								site-cookbooks/kosmos-ejabberd/templates/vhost.yml.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								site-cookbooks/kosmos-ejabberd/templates/vhost.yml.erb
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					# Generated by Chef for <%= @host[:name] %>
 | 
				
			||||||
 | 
					hosts:
 | 
				
			||||||
 | 
					  - "<%= @host[:name] %>"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<% if File.exist?("/opt/ejabberd/conf/#{@host[:name]}.crt") && File.exist?("/opt/ejabberd/conf/#{@host[:name]}.key") -%>
 | 
				
			||||||
 | 
					certfiles:
 | 
				
			||||||
 | 
					  - "/opt/ejabberd/conf/<%= @host[:name] %>.crt"
 | 
				
			||||||
 | 
					  - "/opt/ejabberd/conf/<%= @host[:name] %>.key"
 | 
				
			||||||
 | 
					<% end -%>
 | 
				
			||||||
 | 
					host_config:
 | 
				
			||||||
 | 
					  "<%= @host[:name] %>":
 | 
				
			||||||
 | 
					    sql_type: pgsql
 | 
				
			||||||
 | 
					    sql_server: "localhost"
 | 
				
			||||||
 | 
					    sql_database: "<%= @host[:sql_database] %>"
 | 
				
			||||||
 | 
					    sql_username: "ejabberd"
 | 
				
			||||||
 | 
					    sql_password: "<%= @pgsql_password %>"
 | 
				
			||||||
 | 
					  <% if @host[:ldap_enabled] -%>
 | 
				
			||||||
 | 
					    auth_method: ldap
 | 
				
			||||||
 | 
					    ldap_servers: ["<%= @ldap_server %>"]
 | 
				
			||||||
 | 
					    ldap_rootdn: "cn=xmpp,ou=<%= @host[:name] %>,<%= @ldap_base %>"
 | 
				
			||||||
 | 
					    ldap_password: "<%= @host[:ldap_password] %>"
 | 
				
			||||||
 | 
					    ldap_encrypt: <%= @ldap_encryption_type %>
 | 
				
			||||||
 | 
					    ldap_tls_verify: hard # when TLS is enabled, don't proceed if a cert is invalid
 | 
				
			||||||
 | 
					    ldap_base: "ou=<%= @host[:name] %>,<%= @ldap_base %>"
 | 
				
			||||||
 | 
					    ldap_filter: "(nsRole=cn=xmpp_role,ou=<%= @host[:name] %>,<%= @ldap_base %>)"
 | 
				
			||||||
 | 
					  <% end -%>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					append_host_config:
 | 
				
			||||||
 | 
					  "<%= @host[:name] %>":
 | 
				
			||||||
 | 
					    <%= @host[:append_host_config].chomp %>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user