Перезагрузите рецепты шеф-повара, если установка не удалась или обновления доступны - PullRequest
6 голосов
/ 18 января 2012

Это супер базовая задача, но я не могу найти документацию по ней.Я загружаю машины EC2, используя chef-сервер и chef.Если это не удается, я бы хотел исправить рецепты, а затем переустановить роль и рецепты на этом компьютере, не вынимая узел и не создавая его снова.Я не могу найти команду, которая делает это.

Если я запускаю chef-client на машине, я получаю:

chef-client
[Wed, 18 Jan 2012 11:23:58 +0000] INFO: *** Chef 0.10.0 ***
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List is []
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List expands to []
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Starting Chef Run for gidsy-staging-web
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Loading cookbooks []
[Wed, 18 Jan 2012 11:23:59 +0000] WARN: Node gidsy-staging-web has an empty run list.
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Chef Run complete in 0.508629 seconds
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Running report handlers
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Report handlers complete

Спасибо

Ответы [ 3 ]

8 голосов
/ 21 января 2012

Я столкнулся с той же проблемой, и именно так я решил проблему.

Сначала я применяю рассматриваемые роли к экземпляру, используя нож:

$ knife node run_list add [NODE] [ENTRY]

Be sure and include the items in [ENTRY] in quotes (for example, "role[my-role]").

Как только роль была применена к экземпляру EC2, я затем вызываю chef-client для рассматриваемого экземпляра.

$ sudo chef-client

Это должно существенно ускорить ваш цикл разработки.

2 голосов
/ 26 августа 2013

Ответ Джордана действительно помог мне, но для тех, кто начинает шеф-повара, как я, я объясню немного подробнее.

Я работаю на EC2 и получаю вышеуказанную ошибку.Вот что я сделал, чтобы решить эту проблему:

  1. На моем локальном компьютере запустите: knife ec2 server list, чтобы получить хост-узел на сервере EC2
  2. Добавьте список запуска к этому узлус моей локальной машины разработчика: knife node run_list add i-xxxxx "role[aws-db-deploy]" где i-xxxxx - это имя вашего узла
  3. ssh на вашем экземпляре aws ec2 и выполните команду: sudo chef-client

Надеюсь, это поможет1016 *

0 голосов
/ 20 ноября 2014

Вы можете запустить chef-клиент с помощью списка запуска:

$ sudo chef-client --runlist <role>
...