If statement SaltStack-如何有条件地强制执行状态?

If statement SaltStack-如何有条件地强制执行状态?,if-statement,conditional-statements,salt-stack,If Statement,Conditional Statements,Salt Stack,这是一个自我回答的问题。 如果需要,请提供编辑、其他观点和输入 根据其他命令输出有条件地强制执行状态的最佳实践是什么 这是我的情况: # vim: set syntax=yaml: # Ensures that outbound connections are allowed for httpd httpd:selinux: cmd.run: - name: /usr/sbin/setsebool -P httpd_can_network_connect 1 现在,我

这是一个自我回答的问题。 如果需要,请提供编辑、其他观点和输入

根据其他命令输出有条件地强制执行状态的最佳实践是什么

这是我的情况:

# vim: set syntax=yaml:

# Ensures that outbound connections are allowed for httpd
httpd:selinux:
    cmd.run:
        - name: /usr/sbin/setsebool -P httpd_can_network_connect 1
现在,我只想在启用SELinux并强制执行的情况下运行此操作。

1 解决此问题的一种方法是使用onlyf参数:

这是解决此问题的一种非常快速和简单的方法,在本例中,当我们处理Shell命令时,它可能是最可取的方法。 请注意,onlyif依赖于正在测试的命令的返回状态代码,因此如果需要更大的灵活性,那么这可能不是您想要的

2. 另一种方法是使用jinja模板访问执行模块,将您的状态包装为以下条件:

{% if salt.selinux.getenforce() == "Disabled" %}
    httpd:selinux:
    ...
{% endif %}
这是一个更灵活的解决方案,但也占用了更多的空间。 更多有关:

{% if salt.selinux.getenforce() == "Disabled" %}
    httpd:selinux:
    ...
{% endif %}