Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion metadata.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
depends 'apache2', '>= 1.0.8'
depends 'database', '>= 1.3.0'
depends 'mysql', '>= 1.3.0'
depends 'ufw', '>= 0.6.1'
suggests 'ufw', '>= 0.6.1'
suggests 'firewall', '~> 0.11.8'
depends 'yum'
depends 'postgresql'
depends 'php-fpm'
Expand Down
116 changes: 111 additions & 5 deletions recipes/server_common.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,7 @@
# Create zabbix group
group node['zabbix']['group'] do
gid node['zabbix']['gid']
if node['zabbix']['gid'].nil?
action :nothing
else
action :create
end
action :nothing if node['zabbix']['gid'].nil?
end

# Create zabbix User
Expand Down Expand Up @@ -43,3 +39,113 @@
recursive true
end
end

packages = []
case node['platform']
when 'ubuntu', 'debian'
packages = %w(fping libiksemel-utils libiksemel3 snmp php-pear)
packages.push('libcurl4-openssl-dev', 'libiksemel-dev', 'libsnmp-dev')
case node['zabbix']['database']['install_method']
when 'mysql', 'rds_mysql'
packages.push('libmysql++3', 'libcurl3', 'php5-mysql', 'php5-gd')
packages.push('libmysql++-dev')

when 'postgres'
packages.push('libssh2-1-dev')

# Oracle oci8 PECL package installed below
when 'oracle'
packages.push('php-pear')
packages.push('php-dev')
end
init_template = 'zabbix_server.init.erb'

when 'redhat', 'centos', 'scientific', 'amazon', 'oracle'
include_recipe 'yum-epel'

curldev = (node['platform_version'].to_i < 6) ? 'curl-devel' : 'libcurl-devel'
packages = %w(fping iksemel-utils net-snmp-libs redhat-lsb php-pear)
packages.push(curldev, 'iksemel-devel', 'net-snmp-devel', 'openssl-devel')

case node['zabbix']['database']['install_method']
when 'mysql', 'rds_mysql'
php_packages =
if node['platform_version'].to_i < 6
%w(php53-mysql php53-gd php53-bcmath php53-mbstring php53-xml)
else
%w(php-mysql php-gd php-bcmath php-mbstring php-xml)
end
packages.push(*php_packages)

when 'postgres'
php_packages =
if node['platform_version'].to_i < 6
%w(php5-pgsql php5-gd php5-xml)
else
%w(php-pgsql php-gd php-bcmath php-mbstring php-xml)
end
packages.push(*php_packages)

# Oracle oci8 PECL package installed below
when 'oracle'
packages.push('php-pear')
packages.push('php-devel')
end
init_template = 'zabbix_server.init-rh.erb'
end

packages.delete_if do |item|
item.match(/-dev(el)?$/)
end if node['zabbix']['server']['install_method'] != 'source'

packages.each do |pck|
package pck do
action :install
end
end

# Install the oci8 pecl - common to both Debian and RHEL families
php_pear 'oci8' do
preferred_state 'stable'
action :install
only_if { node['zabbix']['database']['install_method'] == 'oracle' }
end

# install zabbix server conf
template "#{node['zabbix']['etc_dir']}/zabbix_server.conf" do
source 'zabbix_server.conf.erb'
owner 'root'
group 'root'
mode '644'
variables(
:dbhost => node['zabbix']['database']['dbhost'],
:dbname => node['zabbix']['database']['dbname'],
:dbuser => node['zabbix']['database']['dbuser'],
:dbpassword => node['zabbix']['database']['dbpassword'],
:dbport => node['zabbix']['database']['dbport'],
:java_gateway => node['zabbix']['server']['java_gateway'],
:java_gateway_port => node['zabbix']['server']['java_gateway_port'],
:java_pollers => node['zabbix']['server']['java_pollers']
)
notifies :restart, 'service[zabbix_server]', :delayed
end

# Install Init script
template '/etc/init.d/zabbix_server' do
source init_template
owner 'root'
group 'root'
mode '755'
notifies :restart, 'service[zabbix_server]', :delayed
end

# Define zabbix_server service
service 'zabbix_server' do
supports :status => true, :start => true, :stop => true, :restart => true
action [:enable]
end

# Configure the Java Gateway
if node['zabbix']['server']['java_gateway_enable'] == true
include_recipe 'zabbix::java_gateway'
end
102 changes: 1 addition & 101 deletions recipes/server_source.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,71 +10,11 @@
include_recipe 'zabbix::common'
include_recipe 'zabbix::server_common'

packages = []
case node['platform']
when 'ubuntu', 'debian'
packages = %w(fping libcurl4-openssl-dev libiksemel-utils libiksemel-dev libiksemel3 libsnmp-dev snmp php-pear)
case node['zabbix']['database']['install_method']
when 'mysql', 'rds_mysql'
packages.push('libmysql++-dev', 'libmysql++3', 'libcurl3', 'php5-mysql', 'php5-gd')
when 'postgres'
packages.push('libssh2-1-dev')
# Oracle oci8 PECL package installed below
when 'oracle'
php_packages = %w(php-pear php-dev)
packages.push(*php_packages)
end
init_template = 'zabbix_server.init.erb'
when 'redhat', 'centos', 'scientific', 'amazon', 'oracle'
include_recipe 'yum-epel'

curldev = (node['platform_version'].to_i < 6) ? 'curl-devel' : 'libcurl-devel'

packages = %w(fping iksemel-devel iksemel-utils net-snmp-libs net-snmp-devel openssl-devel redhat-lsb php-pear)
packages.push(curldev)

case node['zabbix']['database']['install_method']
when 'mysql', 'rds_mysql'
php_packages =
if node['platform_version'].to_i < 6
%w(php53-mysql php53-gd php53-bcmath php53-mbstring php53-xml)
else
%w(php-mysql php-gd php-bcmath php-mbstring php-xml)
end
packages.push(*php_packages)
when 'postgres'
php_packages =
if node['platform_version'].to_i < 6
%w(php5-pgsql php5-gd php5-xml)
else
%w(php-pgsql php-gd php-bcmath php-mbstring php-xml)
end
packages.push(*php_packages)
# Oracle oci8 PECL package installed below
when 'oracle'
php_packages = %w(php-pear php-devel)
packages.push(*php_packages)
end
init_template = 'zabbix_server.init-rh.erb'
end

packages.each do |pck|
package pck do
action :install
end
end

# Install the oci8 pecl - common to both Debian and RHEL families
php_pear 'oci8' do
preferred_state 'stable'
action :install
only_if { node['zabbix']['database']['install_method'] == 'oracle' }
end

configure_options = node['zabbix']['server']['configure_options'].dup
configure_options = (configure_options || Array.new).delete_if do |option|
option.match(/\s*--prefix(\s|=).+/)
end

case node['zabbix']['database']['install_method']
when 'mysql', 'rds_mysql'
with_mysql = '--with-mysql'
Expand All @@ -94,7 +34,6 @@
end

if node['zabbix']['server']['java_gateway_enable'] == true
include_recipe 'java' # install a JDK if not present
configure_options << '--enable-java' unless configure_options.include?('--enable-java')
end

Expand All @@ -113,42 +52,3 @@

action :install_server
end

# Install Init script
template '/etc/init.d/zabbix_server' do
source init_template
owner 'root'
group 'root'
mode '755'
notifies :restart, 'service[zabbix_server]', :delayed
end

# install zabbix server conf
template "#{node['zabbix']['etc_dir']}/zabbix_server.conf" do
source 'zabbix_server.conf.erb'
owner 'root'
group 'root'
mode '644'
variables(
:dbhost => node['zabbix']['database']['dbhost'],
:dbname => node['zabbix']['database']['dbname'],
:dbuser => node['zabbix']['database']['dbuser'],
:dbpassword => node['zabbix']['database']['dbpassword'],
:dbport => node['zabbix']['database']['dbport'],
:java_gateway => node['zabbix']['server']['java_gateway'],
:java_gateway_port => node['zabbix']['server']['java_gateway_port'],
:java_pollers => node['zabbix']['server']['java_pollers']
)
notifies :restart, 'service[zabbix_server]', :delayed
end

# Define zabbix_agentd service
service 'zabbix_server' do
supports :status => true, :start => true, :stop => true, :restart => true
action [:start, :enable]
end

# Configure the Java Gateway
if node['zabbix']['server']['java_gateway_enable'] == true
include_recipe 'zabbix::java_gateway'
end