如何在OpsWorks ECS Layer中访问私有Docker存储库?

时间:2015-12-07 23:13:01

标签: docker chef aws-opsworks amazon-ecs

我正在尝试使用ECS Ops-Works层来管理一些自动化,但我无法弄清楚如何设置这些实例以设置ecs.config以包含我的私有Docker存储库凭据,就像人们会手动执行一样如果直接管理ec2工作。我想我需要以某种方式使用一些自定义Chef覆盖setup recipe来加载我的模板而不是该文件的默认模板,但我是Chef的新手,所以如何做到这一点尚不清楚。

1 个答案:

答案 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资源/定义,因此在此答案中使用语法会非常简单。