2

我正在尝试通过 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

那么,可以做些什么呢?如何通过状态文件指示服务重新加载?

4

1 回答 1

5

你很亲密。您不能直接在文件系统上观看文件。您只能观看另一个 Salt 状态。所以你的例子看起来像这样:

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

于 2016-04-11T20:59:55.303 回答