Что делает шеф-повар, когда я использую рецепт `s3cmd`?

Я использую Chef и эту поваренную книгу s3cmd.

Как говорится в этом уроке, я использую knife скачать и распаковать его. Я на самом деле сделал s3cmd работать, следуя инструкциям учебника, но у меня проблемы с пониманием, где именно установка s3cmd это происходит?

Может кто-нибудь объяснить мне, что делает Chef при использовании рецепта s3cmd?

1 ответ

Когда ты бежишь chef-solo локально (или chef-client в настройке сервера) вы говорите Chef скомпилировать набор ресурсов, определенных в ваших рецептах поваренных книг, которые затем будут применены к узлу, на котором вы запускаете команду.

Ресурс определяет задачи и настройки для того, что вы хотите настроить.

run_list set для узла определяет, какие рецепты поваренной книги будут компилироваться.

s3cmd

В вашем случае ваш run_list вероятно будет recipe[s3cmd],

Это инструктирует шеф-повара заглянуть в s3cmd поваренная книга и, как вы не дали конкретный рецепт, он загружает s3cmd/recipes/default.rb,

Если вы дали конкретный рецепт, как recipe[s3_cmd::other] тогда шеф загрузит файл s3_cmd/recipes/other.rb,

Шеф-повар скомпилирует все ресурсы, определенные в рецепте (-ах), в список и прогонит список, применяя изменения, необходимые для вашей системы.

Какие s3cmd::default делает

  1. Сначала он устанавливает некоторые package s (через менеджер пакетов вашего дистрибутива)

    python, python-setuptools, python-distutils-extra, python-dateutil, s3cmd
    

    Примечание: это полностью отличается от того, что говорится в readme о том, как s3cmd установлено! Всегда проверяйте!

  2. Выясняет, куда должен идти конфиг.

    if node['s3cmd']['config_dir']
      home_folder = node['s3cmd']['config_dir']
    else
      home_folder = node['etc']['passwd'][node['s3cmd']['user']]['dir']
    end
    
  3. Создает .s3cfg Конфигурационный файл из template в кулинарной книге.

    template "#{home_folder}/.s3cfg" do...
    

Что-то еще

Поваренные книги также могут определять свои собственные ресурсы и провайдеров для создания поваренных книг многократного использования. Имена и атрибуты ресурсов будут определены в cookbook/resources/blah.rb, Код для каждого ресурса action будет в cookbook/providers/blah.rb

Код может быть упакован в cookbook/libraries/blah.rb и включены в другие файлы Ruby.

Бежать chef-solo с --log-level DEBUG Вариант и шаг через выход. Попробуйте определить фазу компиляции списка выполнения, а затем определить, где все применяется.

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