53 lines
1.2 KiB
Ruby
53 lines
1.2 KiB
Ruby
#
|
|
# Cookbook:: kosmos-ejabberd
|
|
# Recipe:: nginx
|
|
#
|
|
|
|
include_recipe "kosmos-base::firewall"
|
|
|
|
ejabberd_hosts = []
|
|
search(:node, "role:ejabberd").each do |node|
|
|
ejabberd_hosts << node["knife_zero"]["host"]
|
|
end
|
|
|
|
ejabberd_hosts.each do |ip_address|
|
|
IPAddr.new ip_address
|
|
rescue IPAddr::InvalidAddressError
|
|
ejabberd_hosts.delete ip_address
|
|
next
|
|
end
|
|
|
|
template "#{node['nginx']['dir']}/streams-available/ejabberd" do
|
|
source "nginx_conf_streams.erb"
|
|
owner 'www-data'
|
|
mode 0640
|
|
# variables ejabberd_hosts: ejabberd_hosts
|
|
variables ejabberd_hosts: ["10.1.1.113"],
|
|
stun_turn_port: node["kosmos-ejabberd"]["stun_turn_port"],
|
|
turn_min_port: node["kosmos-ejabberd"]["turn_min_port"],
|
|
turn_max_port: node["kosmos-ejabberd"]["turn_max_port"]
|
|
notifies :reload, 'service[nginx]', :delayed
|
|
end
|
|
|
|
nginx_stream "ejabberd" do
|
|
action :enable
|
|
end
|
|
|
|
firewall_rule "ejabberd" do
|
|
port [5222, 5223, 5269, 5443]
|
|
protocol :tcp
|
|
command :allow
|
|
end
|
|
|
|
firewall_rule 'ejabberd_stun_turn' do
|
|
port node["kosmos-ejabberd"]["stun_turn_port"]
|
|
protocol :udp
|
|
command :allow
|
|
end
|
|
|
|
firewall_rule 'ejabberd_turn' do
|
|
port node["kosmos-ejabberd"]["turn_min_port"]..node["kosmos-ejabberd"]["turn_max_port"]
|
|
protocol :udp
|
|
command :allow
|
|
end
|