Назад | Перейти на главную страницу

Как я могу запустить солевое состояние, если команда печатает нулевые строки?

У меня есть Salt и SELinux, работающие на CentOS7.

Я хочу бежать restorecon -Rv /path/to/something, но только если это необходимо. Я знаю, что у соли есть 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. На самом деле я не хочу запускать эту команду каждый раз я управляю государством - как раз тогда, когда режиссер на самом деле потребности изменить. В противном случае соль сообщит, что она выполнила команду и были изменения, даже когда их не было. действительно.

Как я могу заставить это работать так, как я хочу?

Похоже, это сделает то, что я хочу:

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"