如果命令打印零行,我该如何运行 salt 状态?

如果命令打印零行,我该如何运行 salt 状态?

我在 CentOS7 上运行了 Salt 和 SELinux。

我想运行restorecon -Rv /path/to/something,但只有在必要时才运行。我知道 Salt 有onlyifunless命令,但我花了很长时间在 Google 上搜索我想要的内容。我想写一些这样的内容:

Fix SELinux Permissions:
  cmd.run:
    - name: restorecon -Rv /path/to/something
    - onlyif: restorecon -Rv -n /path/to/something produces any lines

我试过返回代码,但总是 0。我实际上不想运行此命令每一个我运行状态的时候——就在目录实际上需求否则 salt 会报告它运行了命令并且有变化,即使实际上没有真的

我怎样才能让它按我想要的方式工作?

答案1

看起来这可以满足我的要求:

restore selinux permissions:
  cmd.run:
    - name: restorecon -Rv /path/to/folder/
    - onlyif:
        - "if [[ $(restorecon -Rv -n /path/to/folder/) ]]; then exit 0; else exit 1; fi"

相关内容