这是链接:
https://github.com/opscode/java-quick-start/blob/master/data_bags/apps/dbapp.json#L17
在Java WAR部署的Chef数据库中,我们提供了源URL,可能在S3上,等等。我们还有哪些其他来源?我们可以在这里进行身份验证吗否则,上传我的WAR到S3是一个非常棒的想法,公开可用(是的,你应该有直接的链接,但仍然!)并使用它.. 如果我在S3上放置一些存储桶策略,我无法弄清楚如何在这个S3存储桶策略上放置RULE以允许访问来自特定EC2安全组的所有服务器..我不相信有这样的选择所有..
任何想法如何解决?有没有其他方式我们如何使用密钥或其他东西下载像SCP一样的“源战争”或类似的东西?如果没有其他可能吗?
谢谢!
答案 0 :(得分:0)
任何想法如何解决?
从"application::java_webapp" recipe末尾的任何位置获取WAR文件的代码。
remote_file app['id'] do
path "#{app['deploy_to']}/releases/#{app['war'][node.chef_environment]['checksum']}.war"
source app['war'][node.chef_environment]['source']
mode "0644"
checksum app['war'][node.chef_environment]['checksum']
end
您可以使用提供凭据的内容替换它。
我找不到一个简洁的解决方案(例如SCP的“提供者”),但使用“执行”资源而不是“remote_file”应该可以完成这项工作。当然,您仍然需要安排运行配方的chef-client实例具有正确的SSH密钥或用户名/密码。