Сбой рецепта Chef Apache2 при сборке сервера

Я перестраивал наш главный сервер Chef для работы в экземпляре T2, что означает перемещение его в VPC. Старый мастер работает под управлением 11.10.4, а новый, с которым я возился, работает под управлением 11.16.4. Я был близок к тому, чтобы создать правильный сервер в VPC, но он зависает при настройке Apache.

ohai [reload_users] action reload [2014-11-25T08: 13: 58-06: 00] ОШИБКА: обнаружена ошибка при запуске плагинов: #

В частности, этот рецепт не нравится в рецепте.

if node[:etc][:passwd][:apache] == nil
    ohai "reload_users" do
        plugin "passwd"
        action :reload
    end
end

Я осмотрелся и нашел эту статью о Охай

В Ohai 6 плагин passwd (названный passwd.rb) устанавливает атрибут 'current_user', и для использования этих данных необходимо знать этот факт.
require_plugin ("ПАРОЛЬ")

В Ohai 7 взаимодействие с пользователем теперь основано на именах атрибутов. Укажите только имена атрибутов, для которых вы хотите собирать данные. Охай 7 выясняет, какие плагины необходимы, а затем собирает данные.

В Ohai 7 не нужно знать основные детали, чтобы узнать current_user
зависит от текущего пользователя

Выглядит близко... но это не удастся, если я заменю plugin "passwd" с depends 'currentuser' это также терпит неудачу.

Я думаю, что я использую Ohai 7 (gem list шоу ohai (7.4.0)). Я не рубиновый парень, поэтому там немного нечетко. Что именно должен делать этот код? Это добавлено в репозиторий из старых кулинарных книг Opscode. Наша кулинарная книга была написана в основном кем-то, кто больше не работает в нашей компании и не знает ответа на этот вопрос. Если я прокомментирую это, он будет работать нормально и установит Apache, но я бы упустил просто удалить некоторый код, не понимая его.

1 ответ

Решение

С OHAI 7 вам не нужно (и не можете) перезагружать плагины на основе имени файла, в котором указана конкретная функция. Вместо этого вы перезагружаете его на основе определенного атрибута, который вы хотите перезагрузить.

Это, в то время как атрибуты в node['etc']['passwd'] все еще предоставляются плагином с именем passwd.rbВы не можете перезагрузить его таким образом. Вместо этого вы хотите перезагрузить данные в node['etc'], независимо от того, в каких файлах он заполняется.

Таким образом, вы можете перезагрузить данные пароля, используя этот код в вашем рецепте:

ohai "reload_users" do
  plugin "etc"
  action :reload
end

Это взято из документации по адресу https://docs.getchef.com/ohai.html.

Другие вопросы по тегам