cookbook-zabbix/recipes/proxy.rb

83 lines
2.4 KiB
Ruby

#
# Cookbook Name:: zabbix
# Recipe:: proxy
#
# Copyright 2017, Linux-Help.org
# Authors:
# Eric Renfro <psi-jack@linux-help.org>
#
include_recipe 'chef-vault'
#################################
# Include Additional Repositories
case node['platform_family']
when 'rhel'
include_recipe 'yum-zabbix'
end
package 'zabbix-get'
case node['zabbix']['proxy']['database']['backend']
when 'sqlite'
package 'zabbix-proxy-sqlite3'
when 'postgresql'
include_recipe 'zabbix::database_postgresql'
package 'zabbix-proxy-pgsql'
else
package 'zabbix-proxy-mysql'
end
directory "/var/lib/zabbix_proxy" do
owner 'zabbix'
group 'zabbix'
mode '0750'
action :create
only_if { node['zabbix']['proxy']['database']['backend'] == 'sqlite' }
end
template "/etc/zabbix/zabbix_proxy.conf" do
if node['zabbix']['proxy']['database']['backend'] == 'sqlite'
params = node['zabbix']['proxy']['config'].merge({
"DBName" => "#{node['zabbix']['proxy']['database']['sqlite_path']}/database",
"Server" => node['zabbix']['agent_servers'],
"Hostname" => node['zabbix']['hostname'] ? node['zabbix']['hostname'] : node['fqdn']
})
else
credentials = chef_vault_item("secrets", "zabbix_proxy")
params = node['zabbix']['proxy']['config'].merge({
"DBName" => credentials['database'],
"DBUser" => credentials['username'],
"DBPassword" => credentials['password'],
"Server" => node['zabbix']['agent_servers'],
"Hostname" => node['zabbix']['hostname'] ? node['zabbix']['hostname'] : node['fqdn']
})
end
params = Hash[ params.sort_by { |key, val| key } ]
variables({
:params => params
})
source %W{
zabbix/#{node['zabbix']['version']}/#{node['platform']}-#{node['platform_version'].to_i}/zabbix_proxy.conf.erb
zabbix/#{node['zabbix']['version']}/#{node['platform']}/zabbix_proxy.conf.erb
zabbix/#{node['zabbix']['version']}/#{node['platform_family']}-#{node['platform_version'].to_i}/zabbix_proxy.conf.erb
zabbix/#{node['zabbix']['version']}/#{node['platform_family']}/zabbix_proxy.conf.erb
zabbix/#{node['zabbix']['version']}/zabbix_proxy.conf.erb
zabbix/zabbix_proxy.conf.erb
default/zabbix_proxy.conf.erb
zabbix_proxy.conf.erb
}
sensitive true
mode "0640"
owner "root"
group "root"
notifies :restart, "service[zabbix-proxy]", :immediately
end
service 'zabbix-proxy' do
supports :restart => true, :start => true
action :enable
end
include_recipe 'zabbix::agent'