Write hostname-related configs for new ejabberd cluster
This commit is contained in:
		
							parent
							
								
									5b351036ba
								
							
						
					
					
						commit
						74dd59ad07
					
				| @ -26,3 +26,4 @@ depends "kosmos_postgresql" | ||||
| depends "backup" | ||||
| depends "firewall" | ||||
| depends "tor-full" | ||||
| depends "hostsfile" | ||||
|  | ||||
| @ -29,15 +29,25 @@ file "/opt/ejabberd/.erlang.cookie" do | ||||
|   content ejabberd_credentials['erlang_cookie'] | ||||
| end | ||||
| 
 | ||||
| ejabberd_nodes = search(:node, "role:ejabberd") | ||||
| 
 | ||||
| ejabberd_nodes.each do |n| | ||||
|   ip_address = n["knife_zero"]["host"] | ||||
|   IPAddr.new ip_address | ||||
|   hostsfile_entry ip_address do | ||||
|     hostname n["hostname"] | ||||
|     action :create | ||||
|   end | ||||
| rescue IPAddr::InvalidAddressError | ||||
|   next | ||||
| end | ||||
| 
 | ||||
| ejabberd_hostnames = ejabberd_nodes.map { |n| n["hostname"] } | ||||
| file "/opt/ejabberd/.hosts.erlang" do | ||||
|   mode "0644" | ||||
|   owner "ejabberd" | ||||
|   group "ejabberd" | ||||
|   content <<-EOF | ||||
| "andromeda.kosmos.org". | ||||
| "centaurus.kosmos.org". | ||||
| "draco.kosmos.org". | ||||
|   EOF | ||||
|   content ejabberd_hostnames.map{|h| "#{h}."}.join("\n") | ||||
| end | ||||
| 
 | ||||
| ruby_block "configure ERLANG_NODE" do | ||||
| @ -45,7 +55,7 @@ ruby_block "configure ERLANG_NODE" do | ||||
|     file = Chef::Util::FileEdit.new("/opt/ejabberd/conf/ejabberdctl.cfg") | ||||
|     file.search_file_replace_line( | ||||
|       %r{#ERLANG_NODE=ejabberd@localhost}, | ||||
|       "ERLANG_NODE=#{node['kosmos-ejabberd']['erlang_node']}" | ||||
|       "ERLANG_NODE=ejabberd@#{node['name']}" | ||||
|     ) | ||||
|     file.write_file | ||||
|   end | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user