我正试图通过saltstack状态文件(在Centos7上)配置firewalld。我可以将服务添加到永久配置中,但这确实会进入"永久"配置,而不是运行中的配置。所以,要么需要重新加载,要么(不太可选)将相同的服务也添加到正在运行的配置中。
我用来添加服务的:
public:
firewalld.present:
- name: public
- services:
- http
这是有效的,但只是永久性的。
我试着添加一块"手表",但根本不起作用:
firewalld:
service.running:
- watch:
- file: /etc/firewalld/zones/public.xml
错误为:
Comment: The following requisites were not found:
watch:
file: /etc/firewalld/zones/public.xml
那么,我们能做些什么呢?如何通过状态文件指示服务重新加载?
你很接近。您不能直接在文件系统上查看文件。你只能看另一个盐州。所以你的例子是这样的:
public:
firewalld.present:
- name: public
- services:
- http
firewalld:
service.running:
- watch:
- firewalld: public
这意味着service.running
状态将查找对firewalld.present
状态的更改,如果确实发生了更改,则重新启动firewalld。
如果您想要reload
与完全重新启动,这应该有效:
public:
firewalld.present:
- name: public
- services:
- http
firewalld:
service.running:
- reload: True
- watch:
- firewalld: public
以下是有关服务状态的文档:https://docs.saltstack.com/en/latest/ref/states/all/salt.states.service.html