Linting Salt声明没有运行它们

Ale*_*uer 12 salt-stack

我在homelab中使用Saltstack,我经常发现自己在测试时检查了一些略微破坏的规则.我希望能够在本地和Jenkins实例上检查它们的有效性,否则它们是lint它们,但我找不到任何关于我如何这样做的文档.有什么我想念的吗?

uvs*_*tid 11

Salt(ig Jinja - > YAML - > state function args)中的语法问题是多层次的,没有工具可以覆盖它们.

基于此相关问题的快速答案是触发多层解析:

salt-call state.show_highstate      | tee highstate.output.yaml
salt-call state.show_sls [state_id] | tee state_id.output.yaml
Run Code Online (Sandbox Code Playgroud)

show_*功能显示状态的数据作为仆从执行之前看到它.

使用salt-call上的奴才侧(而不是salt在主机侧)通常会提供更好的调试选项-这主要是偏好.

问题也可能出现在支柱或谷物中(检查所有必需的数据是否已编译并按预期存在):

salt-call pillar.items | tee pillar.output.yaml
salt-call grains.items | tee grains.output.yaml
Run Code Online (Sandbox Code Playgroud)

就像已经提到的@cyfur01一样,直接运行状态(是否有测试模式)是排除故障的最后一步:

salt-call state.highstate      test=True | tee highstate.output.yaml
salt-call state.sls [state_id] test=True | tee state_id.output.yaml
Run Code Online (Sandbox Code Playgroud)


cyf*_*r01 6

Salt州支持测试界面.例如:

salt '*' state.highstate test=True
Run Code Online (Sandbox Code Playgroud)

这应该运行状态并告诉你他们做的一切而不实际改变任何东西 - 实际上它是一个干运行.虽然它不是直接的linting工具,但它确实验证了Salt能够解析并运行所有内容.