Назад | Перейти на главную страницу

Почему я получаю исключения «undefined method» при выполнении «run_list add», «run_list remove» и «rackspace server delete»?

[Первоначально разместил это на форуме opscode, ответа не получил]

Я тестирую бесплатную учетную запись Chef-server, и несколько подкоманд не работают с «Неожиданными ошибками». Возможно, моя версия и версия сервера несовместимы?

ОС: Ubuntu 12.04LTS

Local Chef: 10.12.0 (Устанавливается через гем)

Локальный Ruby: 1.8.7

Кроме того, рабочая станция была настроена вручную, но клиент (ы), с которыми я экспериментировал, запускаются с плагином Rackspace (с использованием «Knight Rckspace server create…»). Команды проблемы, похоже, не работают при разговоре с шеф-поваром хоста. -server, однако, прежде чем он попытается изменить клиента, поэтому я не верю, что проблема в этом. Виртуальные серверы, запускаемые командой «Knife Rckspace server create», запускаются правильно, но затем удалить их с помощью ножа не удается.

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

Вот вывод нескольких соответствующих команд (с трассировкой стека):

https://gist.github.com/7100ada3fd6690113697

Глядя на вашу суть (очень полезно, кстати!), Похоже, что синтаксис модификаций run_list может быть немного неправильным.

В одном примере вы предоставляете:

knife node run_list remove rs-chefdemo-03 init_noop -VV

Ошибка не очень помогает, согласился.

Я считаю, что вам следует использовать правильный синтаксис:

knife node run_list remove rs-chefdemo-03 'recipe[init_noop]' -VV

Это должно действовать так, как вы ожидаете.

Для knife rackspace , я подозреваю, что вы используете неправильный ключ, как указано в файле readme:

Удаляет существующий сервер в текущей настроенной учетной записи Rackspace Cloud по идентификатору сервера / экземпляра. Вы можете найти идентификатор экземпляра, введя «список серверов стеллажа для ножей».

Итак, правильный синтаксис для этого будет:

knife rackspace server delete 20950789 -VV

Удачи!