diff --git a/recipes/common.rb b/recipes/common.rb index 79e0fe1..c70bd82 100644 --- a/recipes/common.rb +++ b/recipes/common.rb @@ -52,6 +52,16 @@ end end +if node['init_package'] == 'systemd' + template "/usr/lib/tmpfiles.d/zabbix.conf" do + source 'tmpfiles.conf.erb' + owner 'root' + group 'root' + mode '644' + action :create + end +end + unless node['zabbix']['agent']['source_url'] node.default['zabbix']['agent']['source_url'] = Chef::Zabbix.default_download_url(node['zabbix']['agent']['branch'], node['zabbix']['agent']['version']) end diff --git a/recipes/server_source.rb b/recipes/server_source.rb index 0882d54..b429de7 100644 --- a/recipes/server_source.rb +++ b/recipes/server_source.rb @@ -30,7 +30,8 @@ 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 = %w(fping iksemel-devel iksemel-utils net-snmp-libs net-snmp-devel openssl-devel php-pear) + packages.push('redhat-lsb') if node['init_package'] != 'systemd' packages.push(curldev) case node['zabbix']['database']['install_method'] @@ -114,13 +115,23 @@ 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 +if node['init_package'] == 'systemd' + template '/lib/systemd/system/zabbix-server.service' do + source 'zabbix-server.service.erb' + owner 'root' + group 'root' + mode '644' + notifies :restart, 'service[zabbix_server]', :delayed + end +else + # 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 end # install zabbix server conf @@ -144,6 +155,7 @@ # Define zabbix_agentd service service 'zabbix_server' do + service_name 'zabbix-server' if node['init_package'] == 'systemd' supports :status => true, :start => true, :stop => true, :restart => true action [:start, :enable] end diff --git a/templates/default/tmpfiles.conf.erb b/templates/default/tmpfiles.conf.erb new file mode 100644 index 0000000..56d1d9c --- /dev/null +++ b/templates/default/tmpfiles.conf.erb @@ -0,0 +1 @@ +d <%= node['zabbix']['run_dir'] %> 755 <%= node['zabbix']['login'] %> <%= node['zabbix']['group'] %> diff --git a/templates/default/zabbix-server.service.erb b/templates/default/zabbix-server.service.erb new file mode 100644 index 0000000..b8ba7e5 --- /dev/null +++ b/templates/default/zabbix-server.service.erb @@ -0,0 +1,11 @@ +[Unit] +Description=Zabbix Server +After=syslog.target network.target + +[Service] +Type=forking +ExecStart=<%= node['zabbix']['install_dir'] %>/sbin/zabbix_server -c <%= node['zabbix']['etc_dir'] %>/zabbix_server.conf +PIDFile=<%= node['zabbix']['run_dir'] %>/zabbix_server.pid + +[Install] +WantedBy=multi-user.target