Шеф-повар - бустер ножа против ножа ssh

Мой вопрос касается BootStrapping и запуска сборок Chef на данном узле.

Скажем, я загрузил машину с помощью следующей команды:

knife bootstrap <FQDN or IP Address> -x root -r "recipe[myRecipe]" --sudo -E environmentFile

Вопросы:

  1. Является ли хорошей практикой последовательное развертывание с помощью приведенной выше команды knife bootstrap?
  2. Использует ли следующую команду лучше, чем knife bootstrap:

    knife ssh <FQDN or IP Address> 'sudo chef-client' --manual-list "recipe[myRecipe]" -x root -E environmentFile
    

    ?


person Vinod    schedule 15.01.2015    source источник


Ответы (2)


knife ssh предназначен для запуска команд на нескольких машинах. Таким образом, вы не даете ему одно имя хоста, он принимает поисковый запрос Chef в качестве параметра. Как и следовало ожидать, knife bootstrap — это правильный способ начальной загрузки.

person coderanger    schedule 15.01.2015
comment
Итак, knife bootstrap — это команда, которую нужно запускать, если нам нужно каждый раз вносить новые изменения в box? - person Vinod; 16.01.2015
comment
Нет, это команда, которую вы запускаете для начальной загрузки машины, что означает установку Chef и регистрацию на сервере Chef. Для сходимости машины просто запустите sudo chef-client. Вы можете использовать для этого ssh-нож или любой другой способ запуска команд, который вы предпочитаете (ssh, RunDeck, Fabric, Push Jobs, MCollective), или позволить шеф-клиенту запускаться с интервалом, чтобы он сходился каждые X минут. - person coderanger; 16.01.2015

Команда начальной загрузки ножа используется только один раз, когда вам нужно зарегистрировать свой узел на сервере шеф-повара, однако она также имеет возможность запускать рецепты во время начальной загрузки. Итак, если вы выполняете команду ниже

"knife bootstrap <FQDN or IP Address> -x root -r "recipe[myRecipe]" --sudo -E environmentFile"

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

knife ssh "serachquery" 'chef-client -o recipe[myRecipe]' -x root

он будет запускать предоставленный рецепт на всех машинах. Команду Knife ssh нужно будет запускать каждый раз, когда вам нужно развернуть ваши изменения, а не команду Knife bootstrap.

person Mahattam    schedule 23.02.2015