1

链接在这里:

https://github.com/opscode/java-quick-start/blob/master/data_bags/apps/dbapp.json#L17

在 Java WAR 部署的 Chef 数据包中,我们提供了源 URL,它可能在 S3 上等。我们还有哪些其他来源?我们可以在这里进行任何身份验证吗?否则,将我的 WAR 上传到 S3,公开可用(是的,你应该有直接链接但仍然!)并使用它似乎不是一个非常棒的主意。如果我在 S3 上设置一些存储桶策略,我想不出顺便说一句,我如何在这个 S3 存储桶策略上设置一个规则,以允许访问来自特定 EC2 安全组的所有服务器。我根本不相信有这样的选择。

任何想法如何解决它?有没有其他方法可以使用密钥或其他方法来下载“源 WAR”,例如 SCP 或类似的东西?如果没有别的可能?

谢谢!

4

1 回答 1

0

任何想法如何解决它?

在“application::java_webapp”配方的末尾,从存储我们的任何地方获取 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”应该可以完成这项工作。当然,您仍然有安排运行配方的厨师客户端实例具有正确的 SSH 密钥或用户名/密码的问题。

于 2012-10-13T02:08:52.397 回答