如果标识符长于例如6个字符,则该服务将获得一部分
如何执行断言以触发部署事务失败,从而防止目标节点的服务配置错误?
如何通过应用配置失败,使节点处于不一致状态? br />
我的特殊情况是Salt,但是我很想知道其他系统也能解决问题。
#1 楼
在Ansible中:您可以使用assert
或fail
模块。 - name: "Make sure web_sites is dictionary"
fail: msg="web_sites should be dictionary"
when: web_sites is not dict
- name: "cluster_name should be shorter than 6 chars"
assert:
that: cluster_name|len <= 6
在Puppet中:在解析阶段评估了故障功能,这导致服务器上解析失败(请参阅有关StackOverflow的问题)
if length($cluster_name) > 6 {
fail("Cluster name is too long. Should be less than 6 chars.")
}
评论
好吧,在厨师长中,我将添加一条规则规则,即rspec或foodcritic,或确保食谱中的标识符匹配。不用盐,我不认为会有一个普遍的答案,因为每个配置管理器都有自己的特异性我将答案编辑得不太具体。
目前,我目前对Saltstack + Jinja解决方案的考虑将是一个尝试从不存在的文件中读取的宏。其他渲染器将以不同的方式工作。例如,Python渲染器将是微不足道的。只需抛出一个异常。