diff --git a/REFERENCE.md b/REFERENCE.md index 8c0c150c..8a567e42 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -158,6 +158,7 @@ The following parameters are available in the `zabbix` class: * [`starttimers`](#-zabbix--starttimers) * [`javagateway`](#-zabbix--javagateway) * [`javagatewayport`](#-zabbix--javagatewayport) +* [`smsdevices`](#-zabbix--smsdevices) * [`startjavapollers`](#-zabbix--startjavapollers) * [`startlldprocessors`](#-zabbix--startlldprocessors) * [`startvmwarecollectors`](#-zabbix--startvmwarecollectors) @@ -830,6 +831,14 @@ Port that zabbix java gateway listens on. Default value: `$zabbix::params::server_javagatewayport` +##### `smsdevices` + +Data type: `Optional[Variant[String[1],Array[String[1]]]]` + +Devices to use for sms texting + +Default value: `$zabbix::params::server_smsdevices` + ##### `startjavapollers` Data type: `Any` @@ -4026,6 +4035,7 @@ The following parameters are available in the `zabbix::server` class: * [`maxhousekeeperdelete`](#-zabbix--server--maxhousekeeperdelete) * [`cachesize`](#-zabbix--server--cachesize) * [`cacheupdatefrequency`](#-zabbix--server--cacheupdatefrequency) +* [`smsdevices`](#-zabbix--server--smsdevices) * [`startdbsyncers`](#-zabbix--server--startdbsyncers) * [`historycachesize`](#-zabbix--server--historycachesize) * [`historyindexcachesize`](#-zabbix--server--historyindexcachesize) @@ -4622,6 +4632,14 @@ How often zabbix will perform update of configuration cache, in seconds. Default value: `$zabbix::params::server_cacheupdatefrequency` +##### `smsdevices` + +Data type: `Optional[Variant[String[1],Array[String[1]]]]` + +Devices to use for sms texting + +Default value: `$zabbix::params::server_smsdevices` + ##### `startdbsyncers` Data type: `Any` diff --git a/manifests/init.pp b/manifests/init.pp index 830218cc..5f7737b4 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -116,6 +116,7 @@ # @param starttimers Number of pre-forked instances of timers. # @param javagateway IP address (or hostname) of zabbix java gateway. # @param javagatewayport Port that zabbix java gateway listens on. +# @param smsdevices Devices to use for sms texting # @param startjavapollers Number of pre-forked instances of java pollers. # @param startlldprocessors Number of pre-forked instances of low-level discovery (LLD) workers. # @param startvmwarecollectors Number of pre-forked vmware collector instances. @@ -304,6 +305,7 @@ $cachesize = $zabbix::params::server_cachesize, $cacheupdatefrequency = $zabbix::params::server_cacheupdatefrequency, $startdbsyncers = $zabbix::params::server_startdbsyncers, + Optional[Variant[String[1],Array[String[1]]]] $smsdevices = $zabbix::params::server_smsdevices, $historycachesize = $zabbix::params::server_historycachesize, Zabbix::Historyics $historyindexcachesize = $zabbix::params::server_historyindexcachesize, $trendcachesize = $zabbix::params::server_trendcachesize, diff --git a/manifests/params.pp b/manifests/params.pp index 5acd9e6b..561f1a7c 100755 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -240,6 +240,7 @@ $server_pacemaker_resource = undef $server_snmptrapperfile = '/tmp/zabbix_traps.tmp' $server_sourceip = undef + $server_smsdevices = undef $server_sshkeylocation = undef $server_sslcertlocation = '/usr/lib/zabbix/ssl/certs' $server_sslkeylocation = '/usr/lib/zabbix/ssl/keys' diff --git a/manifests/server.pp b/manifests/server.pp index 1aea8780..aee457d8 100755 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -87,6 +87,7 @@ # if set to 0 then no limit is used at all. in this case you must know what you are doing! # @param cachesize Size of configuration cache, in bytes. # @param cacheupdatefrequency How often zabbix will perform update of configuration cache, in seconds. +# @param smsdevices Devices to use for sms texting # @param startdbsyncers Number of pre-forked instances of db syncers. # @param historycachesize Size of history cache, in bytes. # @param historyindexcachesize Size of history index cache, in bytes. @@ -204,6 +205,7 @@ Optional[Stdlib::Absolutepath] $database_tlskeyfile = $zabbix::params::server_database_tlskeyfile, Optional[String[1]] $database_tlscipher = $zabbix::params::server_database_tlscipher, Optional[String[1]] $database_tlscipher13 = $zabbix::params::server_database_tlscipher13, + Optional[Variant[String[1],Array[String[1]]]] $smsdevices = $zabbix::params::server_smsdevices, $startpollers = $zabbix::params::server_startpollers, $startipmipollers = $zabbix::params::server_startipmipollers, Integer[0, 1000] $startodbcpollers = $zabbix::params::server_startodbcpollers, diff --git a/spec/classes/server_spec.rb b/spec/classes/server_spec.rb index 05ba1ccc..ebcf516e 100644 --- a/spec/classes/server_spec.rb +++ b/spec/classes/server_spec.rb @@ -367,6 +367,20 @@ it { is_expected.to contain_file('/etc/zabbix/zabbix_server.conf').without_content %r{^StartODBCPollers=1} } end + context 'with zabbix_server.conf and version 7.0' do + next if facts[:os]['name'] == 'Debian' && facts[:os]['release']['major'].to_i <= 11 + next if facts[:os]['name'] == 'Ubuntu' && facts[:os]['release']['major'].to_i <= 20 + + let :params do + { + smsdevices: 'modem0', + zabbix_version: '7.0' + } + end + + it { is_expected.to contain_file('/etc/zabbix/zabbix_server.conf').with_content %r{^SMSDevices=modem0} } + end + context 'with zabbix_server.conf and logtype declared' do describe 'as system' do let :params do diff --git a/templates/zabbix_server.conf.erb b/templates/zabbix_server.conf.erb index 9aaba7fd..259a9650 100755 --- a/templates/zabbix_server.conf.erb +++ b/templates/zabbix_server.conf.erb @@ -962,6 +962,7 @@ LoadModulePath=<%= @loadmodulepath %> # Mandatory: no # Default: # SMSDevices= +<% if @smsdevices %>SMSDevices=<%= @smsdevices.is_a?(Array) ? @smsdevices.join(',') : @smsdevices -%><% end %> <% end %> <% if @zabbix_version.to_f >= 5.4 %> @@ -1017,4 +1018,4 @@ LoadModulePath=<%= @loadmodulepath %> # Default: # StartBrowserPollers=1 -<% end %> \ No newline at end of file +<% end %>