我有一个控制Wildflys domain.xml的Wildfly主厨配方。但是当我们将WAR部署到Wildfly时,它会将部署部分添加并填充到domain.xml。当然,当它再次运行时,Chef会删除此部分,因为它与模板不匹配。
该配方附带了一个创建锁文件以防止任何更改的选项,但我希望Chef能够在不删除domain.xml的deployments部分的情况下运行和更新任何正确的更改。
我可以将部署添加到模板中,但是sha1值会随着每个新部署而变化,id而不是Chef会找出现有文件中的内容并保留它。部署部分如下所示:
<deployments>
<deployment name="healthcheck.war" runtime-name="healthcheck.war">
<content sha1="2a833c924625234ad160cb24c6f4b74007ad0815"/>
</deployment>
<deployment name="jolokia.war" runtime-name="jolokia.war">
<content sha1="c1261964977a401aa45c180037c2965983b7e22a"/>
</deployment>
...
</deployments>
有什么建议吗?感谢。
答案 0 :(得分:0)
使用
保护资源调用template <your template> do
...
not_if File.exist?(<path to .xml file>).to_s
end
这样一来,如果该路径上存在一个文件,它甚至不会评估它们是否不同,它只会跳过模板块。
编辑:not_if guards需要一个字符串而不是一个布尔值,代码被修复以反映这一点。