我正在尝试使用ECS Ops-Works层来管理一些自动化,但我无法弄清楚如何设置这些实例以设置ecs.config以包含我的私有Docker存储库凭据,就像人们会手动执行一样如果直接管理ec2工作。我想我需要以某种方式使用一些自定义Chef覆盖setup recipe来加载我的模板而不是该文件的默认模板,但我是Chef的新手,所以如何做到这一点尚不清楚。
答案 0 :(得分:3)
因此,要重述此问题,您需要在opsworks_ecs::setup
食谱中修改此模板:
template "ecs.config" do
path "/etc/ecs/ecs.config"
source "ecs.config.erb"
owner "root"
group "root"
mode 0644
end
我不知道你是怎么'打电话'这个但是我现在假设你要么直接把这个食谱放在你的run_list中和/或用include_recipe "opsworks_ecs::setup"
明确地调用它
在这种情况下,写一个包装食谱。如果您为“Acme,Org”工作,则可能类似于acme_opsworks_ecs::setup
。
acme_opsworks_ecs / metadata.rb应该至少有:
name 'acme_opsworks_ecs'
version '0.0.1'
depends 'opsworks_ecs'
acme_opsworks_ecs / recipes / setup.rb应如下所示:
include_recipe "opsworks_ecs::setup"
resources(template: "ecs.config").cookbook(cookbook_name)
acme_opsworks_ecs / templates / default / ecs.config.erb也是必需的
/* add your own template content to this file -- copy theirs and edit */
应该允许你修复它。您正在做的是使用Chef的两遍解析器,以便opsworks配方定义模板资源,然后在实际运行之前重新打开并编辑它。现在,无论您在run_list或include_recipe调用中引用opsworks_ecs::setup
,请将该配方替换为acme_opsworks_ecs::setup
。
如果您没有直接调用opsworks_ecs::setup
,请按照相同的模式包装您调用的opsworks配方。
如果您谷歌“厨师倒带”,您可以找到有关使用厨师的这种模式的更多信息。请注意,我使用的语法是内置于chef,并且不需要使用自定义gem install或chef_rewind资源/定义,因此在此答案中使用语法会非常简单。