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 %>