2015-12-07 7 views
4

Я пытаюсь использовать уровень Ops-Works ECS для управления некоторой автоматизацией, но я не могу понять, как настроить эти экземпляры для настройки ecs.config, чтобы содержать мои личные учетные данные репозитория Docker, как это можно сделать вручную, если напрямую управлять рабочими местами ec2. Я думаю, мне нужно как-то использовать какой-то пользовательский шеф-повар, чтобы переопределить setup recipe, чтобы загрузить мой шаблон, а не шаблон по умолчанию для этого файла, но я новичок в Chef, поэтому, как это сделать, неясно.Как получить доступ к частному репозиторию Docker в OpsWorks ECS Layer?

+1

вам, вероятно, потребуется дополнительная информация о кулинарной книге opsworks. является ресурсом шаблона в рецепте? это в ресурсе/поставщике? можете ли вы указать нам на код opsworks, который вы используете? я могу придумать пару различных возможных решений, но не имея опыта работы с opsworks, вы не можете сказать, что делать, не догадываясь о совершенно неправильном ответе ... – lamont

+0

Привет, Ламонт, спасибо за ваш интерес. OpsWorks предоставляет набор рецептов по умолчанию (https://github.com/aws/opsworks-cookbooks/tree/release-chef-11.10/opsworks_ecs). Все рецепты применяются по умолчанию, и пользователь может предоставить дополнительные рецепты (и, надеюсь, изменить существующие рецепты). Меня особенно интересует, что https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/opsworks_ecs/recipes/setup.rb указывает на другой шаблон, или реконфигурирование и сброс в пользовательском рецепт, если это невозможно. –

ответ

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/Рецепты/setup.rb должен выглядеть следующим образом:

include_recipe "opsworks_ecs::setup" 
resources(template: "ecs.config").cookbook(cookbook_name) 

acme_opsworks_ecs/шаблоны/по умолчанию/ecs.config.erb также требуется

/* add your own template content to this file -- copy theirs and edit */ 

Это должно позволить вам исправить это. То, что вы делаете, использует двухпроходный синтаксический анализатор Chef, так что рецепт opsworks определяет ресурс шаблона, затем вы повторно открываете его и редактируете, прежде чем он начнет работать. Теперь, где бы вы ни ссылались opsworks_ecs::setup в своих вызовах run_list или include_recipe, замените этот рецепт на acme_opsworks_ecs::setup.

Если вы не вызываете напрямую opsworks_ecs::setup, тогда оберните рецепты (ы) opsworks, которые вы вызываете, вместо того же шаблона.

Если вы google «chef-rewind», вы можете найти более подробную информацию об этом виде использования шеф-повара. Обратите внимание, что синтаксис, который я использовал, встроен в шеф-повар, хотя и не требует использования специальной установки gem или chef_rewind ресурса/определения, поэтому будет существенно проще использовать синтаксис в этом ответе.

+0

Впоследствии я смог попробовать это, и он, похоже, не имел предполагаемого эффекта. Я впоследствии поддерживал связь с Amazon, и они рассказали мне о некоторых различиях в реализации их шеф-повара, в частности http://docs.aws.amazon.com/opsworks/latest/userguide/cookbooks-101-opsworks-templates .html для изменения шаблонов.Я расскажу еще раз, когда/если я получу это для работы. Спасибо хоть. –

+1

Их решение, похоже, полагается на функцию множественных возможностей поваренной книги, которую мы собираемся в конце концов отказаться от шеф-повара. Этот подход повар-перемотка лучше, если вы можете понять, как заставить его работать. – lamont

+0

Спасибо за хед-ап! –