AWS Custom Cookbooks 将文件复制到实例
Posted
技术标签:
【中文标题】AWS Custom Cookbooks 将文件复制到实例【英文标题】:AWS Custom Cookbooks Copy File to instance 【发布时间】:2016-02-18 07:29:45 【问题描述】:我们将 OpsWorks 用于我们的 AWS 实例。我在 git repo 上有几本使用 berkshelf 的食谱。据我了解,当实例启动(或您更新自定义食谱)时,自定义厨师食谱会被复制到每个服务器实例。
我正在寻找一个厨师食谱,它将文件从 git repo 复制到服务器实例的目录中。
一个例子是: 我的 db.php 文件不在我的 OpsWorks 应用程序的 git 存储库中。我把它放在另一个 git repo 中,那里有我的定制厨师食谱/食谱。我希望能够调用一个厨师食谱,它将获取该 db.php 文件并将其复制到 /srv/www/app/current/config/db.php 到本地实例上。
这可能吗?
【问题讨论】:
【参考方案1】:您想将其放在食谱中的files/
下,并在您的食谱代码中使用cookbook_file
资源。如果您想动态生成一些资源,也可以使用 template
资源。
【讨论】:
这很好用。但是,来自 Chef 的 cookbook_file 文档指出文件可以位于 files/ 目录中。 AWS OpsWorks Chef 不会使用 files/ 根目录中的任何文件。它需要在 files/default/ 或 files/ubuntudefault/
位的支持,并且 Linux 上的 OpsWorks 似乎仍在运行 11.x。 Laaaaaame,但事实如此。【参考方案2】:
有一个 remote_file 资源。
但我不认为直接从 repo 获取一个文件是一个好主意。 最好在机器上克隆该 repo 并检查特定版本。其他选择是将给定文件放在 S3 上并定期更新。
【讨论】:
以上是关于AWS Custom Cookbooks 将文件复制到实例的主要内容,如果未能解决你的问题,请参考以下文章
如何为 AWS API Gateway Custom Authorizer 提供 Lambda 权限?
Managing Chef Cookbooks the Berkshelf way
ruby cookbooks_mailx_spec_unit_default_spec.rb