Write hostname-related configs for new ejabberd cluster

This commit is contained in:
Basti 2022-01-18 11:16:44 -06:00
parent 5b351036ba
commit 74dd59ad07
Signed by untrusted user: basti
GPG Key ID: 9F88009D31D99C72
2 changed files with 17 additions and 6 deletions

View File

@ -26,3 +26,4 @@ depends "kosmos_postgresql"
depends "backup"
depends "firewall"
depends "tor-full"
depends "hostsfile"

View File

@ -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