1
A
回答
1
好吧。您可以指定只有在成功应用另一个状态时才会应用某个状态。像这样:
vim:
pkg.installed: []
/etc/vimrc:
file.managed:
- source: salt://edit/vimrc
- require:
- pkg: vim
vimrc文件只有在安装了vim包的情况下才会被管理。如果vim已经安装,或者在这个状态之后它是一个新的安装包,它并不重要。如果成功安装pkg:vim,它将运行第二个状态。
如果您有可能失败的特定状态,这非常有用。您可以将require
添加到所有其他状态,以确保只有在此特定状态成功时才会应用它们。
若要回答您的问题: 如果其中一个失败,则无法使state.sls中的所有状态都失败。你可以通过运行你的state.sls来解决这个问题,用salt '*' state.apply state test=True
来看看会发生什么。如果其中一个州会失败,您可以决定不实际应用州。
我希望这能回答你的问题。如果现在还不清楚,你可能想拿出一个例子:-)
2
你可以使用必要条件和所有根据状态将失败以及所需的一个。
一种替代方法是中止在单个状态失败整个执行:
abort_on_failure_state_example:
test.fail_without_changes:
- failhard: True
没有进一步的状态将被执行,即使是那些从其它包括SLS文件。 我使用它来确保在应用状态之前设置了一些必需的谷物,而不必在每个状态下检查/要求它们。
这是记录在https://docs.saltstack.com/en/latest/ref/states/failhard.html
相关问题
- 1. python如果语句失败
- 2. 如果语句失败bash
- 3. MySQL如果语句失败
- 4. 如果一个失败时如何回滚3个语句?
- 5. Phing失败里面的if语句
- 6. 测试用例失败,如果其中任何一个失败
- 7. 如果语句比较失败
- 8. 如果语句执行失败
- 9. 嵌套如果语句失败
- 10. 如果语句似乎没有失败
- 11. 嵌套,如果语句失败
- 12. 如果语句在Perl中失败
- 13. import语句失败的一个模块
- 14. 如果一个Bean失败,防止Spring失败
- 15. 如果插入语句失败,MySQL会发生多个错误
- 16. Verilog综合失败,如果包含两个变量的语句
- 17. 如何调试失败的SELECT语句?
- 18. 回滚,如果一个操作失败
- 19. 为什么这个if语句失败?
- 20. 这个IF语句为什么失败?
- 21. 多个插入语句失败postgresql/psycopg2
- 22. CUBEFUNCTIONS - 一个失败,然后都失败?
- 23. :条件语句失败jQuery/ajax结果
- 24. 如果DoCmd.SendObject失败?
- 25. POSTGRES IF语句失败
- 26. OPENROWSET:sp_executesql语句在@param失败
- 27. MySQL准备语句失败
- 28. Sqlite Finalize语句失败
- 29. 尝试:语句失败
- 30. SQL UPDATE语句失败
谢谢:)这是我需要确保事情正确的方式。 – Anatoly