如何根据之前的操作复制cookbook文件?

时间:2015-04-20 12:48:05

标签: tomcat chef chef-recipe cookbook

我想在Windows节点上安装Tomcat-Server,然后复制修改后的server.xml,以便配置完成。

此时,可以使用Chef和Windows cookbook轻松完成:

配方/ default.rb

windows_zipfile node['tomcat']['install_dir'] do
  source node['tomcat']['url']
  action :unzip
  not_if {::Dir.exists?(node['tomcat']['dir'])}
end

cookbook_file 'server.xml' do
  path "#{node['tomcat']['dir']}conf/server.xml"
  action :create
end

现在棘手的部分:应该允许用户更改server.xml!当他执行此操作并且chef-client运行时,它将覆盖用户更改server.xml并放回给定的cookbook文件。但这绝不可能发生。只有在成功解压缩Tomcat服务器后才能复制该文件。

所以我认为我肯定需要一个not_if / only_if语句。

像somthing一样验证cookbook文件只在tomcat解压缩时安装。有没有办法说“only_if windows_zipfile被执行”或类似的东西?

或者我应该比较server.xml(节点的)的长度,如果长度与未修改的标准server.xml的安装长度相匹配,只能用cookbook文件替换它? (< ==这听起来很令人毛骨悚然)

对于windows_zip文件的given actions在这里没有帮助我猜...

提前谢谢

Bohne

0 个答案:

没有答案