我在 CentOS7 上运行了 Salt 和 SELinux。
我想运行restorecon -Rv /path/to/something
,但只有在必要时才运行。我知道 Salt 有onlyif
和unless
命令,但我花了很长时间在 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"