如何在Chef的数据包中对“source”进行一些身份验证?

时间:2012-10-13 01:22:55

标签: java deployment amazon-web-services chef

这是链接:

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一样的“源战争”或类似的东西?如果没有其他可能吗?

谢谢!

1 个答案:

答案 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密钥或用户名/密码。