82 lines
2.4 KiB
Ruby
82 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'
|