Сбой рецепта 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.