diff --git a/site-cookbooks/kosmos-ejabberd/metadata.rb b/site-cookbooks/kosmos-ejabberd/metadata.rb index 0131259..a47ac07 100644 --- a/site-cookbooks/kosmos-ejabberd/metadata.rb +++ b/site-cookbooks/kosmos-ejabberd/metadata.rb @@ -26,3 +26,4 @@ depends "kosmos_postgresql" depends "backup" depends "firewall" depends "tor-full" +depends "hostsfile" diff --git a/site-cookbooks/kosmos-ejabberd/recipes/default.rb b/site-cookbooks/kosmos-ejabberd/recipes/default.rb index 0c69d95..8ef2b26 100644 --- a/site-cookbooks/kosmos-ejabberd/recipes/default.rb +++ b/site-cookbooks/kosmos-ejabberd/recipes/default.rb @@ -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