У меня есть виртуальная машина марионеточного мастера, которая управляет почти 20 узлами. У меня установлен Nagios на одном из этих узлов, и для того, чтобы графический интерфейс Nagios работал, мне нужно было бы остановить iptables на этом ящике nagios. Проблема в том, что всякий раз, когда Puppet запускается, он снова запускает службу iptables. Я попытался добавить службу в файл server.pp модулей nagios, подобный этому, который не работал. В нем говорится, что служба iptables уже определена и не может иметь дубликатов:
service
{
iptables:
ensure => stopped,
}
Кроме того, я пробовал использовать команду exec
exec { "open-port-80":
command => "sudo iptables -I INPUT 14 -m state --state NEW -p tcp --dport 80 -j ACCEPT",
path => "${os_path}",
unless => "sudo iptables-save | grep 80 | grep INPUT | grep ACCEPT | grep NEW | wc -l | xargs test 1 -eq",
notify => Exec["ip-tables-save"]
}
exec { "ip-tables-save":
command => "sudo service iptables save",
# refreshonly => true,
# path => "${os_path}",
}
Также попробовал приведенный ниже код, но безуспешно:
if defined("iptables") and defined(Class['iptables'])
{
iptables::add_tcp_stateful_listen
{
‘nagios-core':
client_nets => '[nagios node IP address here]/32',
dports => ‘80',
}
}
Может ли кто-нибудь помочь мне с этим?
заранее спасибо
Вместо того, чтобы полностью отключать iptables, я бы рекомендовал использовать модуль Puppetlabs Firewall для управления межсетевыми экранами / iptables:
$ puppet module установить puppetlabs-firewall
Затем вы можете написать такую марионетку:
firewall { '100 Allow http and https access':
port => [80, 443],
proto => tcp,
action => accept,
}