Chef 12 + AWS Opsworks + 从 s3 部署应用程序
Posted
技术标签:
【中文标题】Chef 12 + AWS Opsworks + 从 s3 部署应用程序【英文标题】:Chef 12 + AWS Opsworks + Deploy App from s3 【发布时间】:2016-12-12 21:15:33 【问题描述】:我需要使用 AWS Opsworks 设置部署流程。我已经创建了我的堆栈并添加了相应的层。我已经配置了我的应用程序,它基本上是一个存储在 s3 存储桶中的战争档案
当我触发应用程序的部署事件时,我的配方正在执行,但问题是我得到了一个 s3 url。没有官方的 aws sdk 支持使用 s3 url 复制 s3 文件。
一种方法是我可以拆分 url 并从中获取存储桶密钥和区域,并可以将其与 aws sdk 一起使用。但是正确的方法是什么。有没有其他我可以使用的库。
问这个问题是为了了解什么是正确的做法。
【问题讨论】:
【参考方案1】:看s3_file cookbook,确实可以指定完整的s3 url:
s3_file "/tmp/somefile" do
remote_path "/my/s3/key"
bucket "my-s3-bucket"
aws_access_key_id "mykeyid"
aws_secret_access_key "mykey"
s3_url "https://s3.amazonaws.com/bucket"
owner "me"
group "mygroup"
mode "0644"
action :create
decryption_key "my SHA256 digest key"
decrypted_file_checksum "SHA256 hex digest of decrypted file"
end
【讨论】:
【参考方案2】:AWS 维护着一本用于与其各种服务集成的说明书。 s3_file
资源应该能够完成您所需要的。这是他们自述文件中的一个示例:
aws_s3_file '/tmp/foo' do
bucket 'i_haz_an_s3_buckit'
remote_path 'path/in/s3/bukket/to/foo'
aws_access_key aws['aws_access_key_id']
aws_secret_access_key aws['aws_secret_access_key']
region 'us-west-1'
end
您可以通过将其作为依赖项添加到 metadata.rb 中来将其包含在您的说明书中(确保您已下载说明书并在本地说明书路径中)。
【讨论】:
你能用 s3 url 吗??以上是关于Chef 12 + AWS Opsworks + 从 s3 部署应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MacOS 中安装 chef 12 以部署到 AWS Opsworks?
无法在 AWS Opsworks 上使用 Chef 12 查找 Chef 社区食谱
AWS opsworks 上的 chef 12 脚本无法安装 jenkins