在Chef中创建符号链接:
link "#{node[:tomcat][:home]}/webapps/myface.war" do
to "/srv/scafandru/current/myface.war"
end
失败,因为此时节点上缺少父目录。
在link
resource中,我看不到任何与directory
resource的recursive true
类似的属性,因此我目前的方法是通过运行
directory "#{node[:tomcat][:home]}/webapps" do
recursive true
end
在链接之前。
是否有任何优雅的方法将此行为封装在链接资源中?
答案 0 :(得分:2)
如果您不想编写代码,那么您的解决方案是最好的。
如果您愿意拥有更好的解决方案,可以扩展提供商以获取链接以添加递归属性。
为此,您可以参考opscode documentation说明:
扩展现有提供商
如果你想写一个LWP 扩展另一个提供者类,你可以将其作为一个混合, 然后将它放在库目录下的库中 使用那个扩展课程的食谱。
然后将编写您的LWRP以将该库包含在 提供程序实现以访问扩展核心资源。 有关示例,请参阅Transmission Cookbook,其中包括a
transmission_torrent_file
允许您下载文件的LWRP 通过BitTorrent协议。这个transmission_torrent_file
LWRP是 现有文件和remote_file资源的扩展。