vm/chef/cookbooks/zabbix/recipes/default.rb (72 lines of code) (raw):

# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. node.override['postgresql']['standalone']['allow_external'] = false include_recipe 'c2d-config::default' include_recipe 'openssh' include_recipe 'apache2::default' include_recipe 'apache2::rm-index' include_recipe 'apache2::security-config' include_recipe 'postgresql::standalone_bookworm' include_recipe 'zabbix::ospo' # install zabbix package apt_repository 'zabbix' do uri node['zabbix']['repo']['uri'] components node['zabbix']['repo']['components'] distribution node['zabbix']['repo']['distribution'] key node['zabbix']['repo']['keyserver'] end apt_update 'update' do action :update retries 5 retry_delay 30 end package 'install packages' do package_name node['zabbix']['packages'] action :install end # configure zabbix bash 'configure zabbix' do user 'root' cwd '/tmp' code <<-EOH sed -i 's/# php_value date.timezone/php_value date.timezone/' /etc/apache2/conf-enabled/zabbix.conf sed -i '1 i\ RedirectMatch ^/$ /zabbix/ ' /etc/apache2/conf-enabled/zabbix.conf a2enmod cgi ssl a2dissite 000-default a2ensite default-ssl su - postgres -c 'createuser zabbix' su - postgres -c 'createdb -O zabbix -E Unicode zabbix' su - postgres -c 'createdb -O zabbix -E Unicode zabbix_proxy' zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/proxy.sql | sudo -u zabbix psql zabbix_proxy ### for PostgreSQL -- uses socket (localhost uses tcp) sed -i 's/^# DBHost=localhost/DBHost=localhost/' /etc/zabbix/zabbix_server.conf sed -i 's/# ListenIP=0.0.0.0/ListenIP=127.0.0.1/' /etc/zabbix/zabbix_server.conf sed -i 's/^# DBHost=localhost/DBHost=localhost/' /etc/zabbix/zabbix_proxy.conf sed -i 's/# ListenPort=10051/ListenPort=10055/' /etc/zabbix/zabbix_proxy.conf EOH end template '/etc/zabbix/web/zabbix.conf.php' do source 'etc-zabbix-web-zabbix-conf-php.erb' cookbook 'zabbix' owner 'root' group 'root' mode '0644' end template '/opt/c2d/zabbix-utils' do source 'zabbix-utils' owner 'root' group 'root' mode 0755 action :create end service 'apache2' do action [ :enable, :restart ] end service 'zabbix-server' do action [ :enable, :stop ] end service 'zabbix-proxy' do action [ :enable, :stop ] end c2d_startup_script 'zabbix' do source 'opt-c2d-scripts-zabbix.erb' action :template end