Skip to content

Commit 214d35b

Browse files
authored
Merge pull request #690 from kcl-nmssys/multiple_servers_firewall
Fix for zabbix::agent manage_firewall when multiple servers are specified
2 parents ed50b9d + b98839e commit 214d35b

File tree

2 files changed

+42
-13
lines changed

2 files changed

+42
-13
lines changed

manifests/agent.pp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -471,15 +471,18 @@
471471

472472
# Manage firewall
473473
if $manage_firewall {
474-
firewall { '150 zabbix-agent':
475-
dport => $listenport,
476-
proto => 'tcp',
477-
action => 'accept',
478-
source => $server,
479-
state => [
480-
'NEW',
481-
'RELATED',
482-
'ESTABLISHED'],
474+
$servers = split($server, ',')
475+
$servers.each |$_server| {
476+
firewall { "150 zabbix-agent from ${_server}":
477+
dport => $listenport,
478+
proto => 'tcp',
479+
action => 'accept',
480+
source => $_server,
481+
state => [
482+
'NEW',
483+
'RELATED',
484+
'ESTABLISHED'],
485+
}
483486
}
484487
}
485488
# the agent doesn't work perfectly fine with selinux

spec/classes/agent_spec.rb

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,24 +167,50 @@
167167
it { is_expected.to contain_file(config_path).with_content %r{^HostInterface=testinterface$} }
168168
end
169169

170-
context 'when declaring manage_firewall is true' do
170+
context 'when declaring manage_firewall is true with single server' do
171171
let :params do
172172
{
173+
server: '192.168.1.1',
173174
manage_firewall: true
174175
}
175176
end
176177

177-
it { is_expected.to contain_firewall('150 zabbix-agent') }
178+
it { is_expected.to contain_firewall('150 zabbix-agent from 192.168.1.1') }
178179
end
179180

180-
context 'when declaring manage_firewall is false' do
181+
context 'when declaring manage_firewall is false with single server' do
181182
let :params do
182183
{
184+
server: '192.168.1.1',
183185
manage_firewall: false
184186
}
185187
end
186188

187-
it { is_expected.not_to contain_firewall('150 zabbix-agent') }
189+
it { is_expected.not_to contain_firewall('150 zabbix-agent from 192.168.1.1') }
190+
end
191+
192+
context 'when declaring manage_firewall is true with multiple servers' do
193+
let :params do
194+
{
195+
server: '192.168.1.1,10.11.12.13',
196+
manage_firewall: true
197+
}
198+
end
199+
200+
it { is_expected.to contain_firewall('150 zabbix-agent from 192.168.1.1') }
201+
it { is_expected.to contain_firewall('150 zabbix-agent from 10.11.12.13') }
202+
end
203+
204+
context 'when declaring manage_firewall is false with multiple servers' do
205+
let :params do
206+
{
207+
server: '192.168.1.1,10.11.12.13',
208+
manage_firewall: false
209+
}
210+
end
211+
212+
it { is_expected.not_to contain_firewall('150 zabbix-agent from 192.168.1.1') }
213+
it { is_expected.not_to contain_firewall('150 zabbix-agent from 10.11.12.13') }
188214
end
189215

190216
context 'it creates a startup script' do

0 commit comments

Comments
 (0)