2015-11-17 2 views
0

Мы используем OpsWorks для наших экземпляров AWS. У меня есть несколько кулинарных книг на git repo, используя для них berkshelf. По моему мнению, рецепты пользовательских шеф-поваров копируются на каждый экземпляр сервера, когда экземпляр запускается (или вы обновляете собственные рецепты).AWS Custom Cookbooks Скопируйте файл в пример

Я ищу рецепт шеф-повара, который скопирует файл из git repo в каталог на экземпляр сервера.

Примером может служить: . Мой файл db.php НЕ находится в git repo для моего приложения OpsWorks. У меня он сидит в другом реестре git, где есть мои поваренные книги/рецепты повара. Я хочу, чтобы иметь возможность вызвать рецепт шеф-повара, который возьмет этот файл db.php и скопировать его в /srv/www/app/current/config/db.php на локальный экземпляр.

Возможно ли это?

ответ

1

Вы хотите положить его под files/ в поваренную книгу и использовать ресурс cookbook_file в вашем рецепте. Вы также можете использовать ресурс template, если хотите динамически генерировать некоторые его фрагменты.

+0

Это хорошо работает. Тем не менее, cookbook_file документирует из состояния Chef, что файлы могут находиться в каталоге files /. AWS OpsWorks Chef не будет использовать какой-либо файл в корне файлов /. Он должен быть в файлах/по умолчанию/или файлах/ubuntu /. – hiddenicon

+0

Поддержка сброса бит 'default /' была добавлена ​​в Chef 12.0, а OpsWorks в Linux все еще работает 11.x. Laaaaaame, но так оно и есть. – coderanger

0

Ресурс remote_file.

Но я не думаю, что получение одного файла непосредственно из репо - хорошая идея. Лучше клонировать это репо на машине и проверять конкретную ревизию. Другой вариант - разместить данный файл на S3 и периодически обновлять его.

 Смежные вопросы

  • Нет связанных вопросов^_^