Шеф-повар, как перезаписать атрибуты в файле JSON

Я пытаюсь запустить один и тот же рецепт дважды с разными атрибутами. Есть ли способ указать это в списке запуска? Пример:

"myRecipe":{
"run-list": "recipe[test], recipe[test]"
}

и первый должен иметь flag=false, а второй должен выполняться с flag=true.

4 ответа

Решение

Нет, это невозможно. Вы должны реализовать такую ​​логику в своем рецепте и, например, перебирать массив.

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

Более длинный ответ: вы просматривали какие-либо кулинарные книги на сайте сообщества opscode? Многие шаблоны повторяются, и работа, опубликованная другими, безусловно, может быть полезной... Тем более, что вы, кажется, только начинаете с шеф-повара.

Я также пытался использовать ресурсы:

define :installx, :cmd=>'good', :upgrade=>true do
  Chef::Log.info('cmd = #{params[:cmd]}')
  if params[:upgrade]
    Chef::Log.info('upgrading...')
  else
    Chef::Log.info('installing...')
  end
end

installx resource
installx "name" do
  cmd "install 1"
  upgrade true
end

и он выдает ошибку: "ОШИБКА: не удается найти ресурс для определения". Это в значительной степени прямо из официальной документации. Если кто-нибудь знает, что является причиной этого, пожалуйста, дайте мне знать.

Некоторые из поваренных книг Шеф-повара написаны очень хорошо, на мой взгляд, например, поваренная книга visualstudio от https://github.com/daptiv/visualstudio.

У меня есть случай, когда мне нужно запустить этот рецепт дважды. Я должен установить Visual Studio 2012 и 2013 на компьютере, чтобы скомпилировать другой исходный код. Эти версии Visual Studio имеют точно такой же процесс автоматической установки, что указывает на XML-файл, поэтому его было легко заставить работать в 2012 и 2013 годах.

Мне удалось создать файл роли Chef, чтобы переопределить атрибуты поваренной книги visualstudio, чтобы указать мой частный ISO-образ Visual Studio 2012. Это было просто. Затем я создал другой файл роли Chef для установки 2013, чтобы указать на отдельный Visual Studio 2013 ISO. Поскольку Chef не запускает рецепт дважды, он заканчивается только установкой Visual Studio 2013.:(

Было бы плохо, если бы мне пришлось сделать две локальные копии поваренной книги "visualstudio".

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