Что делает шеф-повар, когда я использую рецепт `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
делает
Сначала он устанавливает некоторые
package
s (через менеджер пакетов вашего дистрибутива)python, python-setuptools, python-distutils-extra, python-dateutil, s3cmd
Примечание: это полностью отличается от того, что говорится в readme о том, как
s3cmd
установлено! Всегда проверяйте!Выясняет, куда должен идти конфиг.
if node['s3cmd']['config_dir'] home_folder = node['s3cmd']['config_dir'] else home_folder = node['etc']['passwd'][node['s3cmd']['user']]['dir'] end
Создает
.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
Вариант и шаг через выход. Попробуйте определить фазу компиляции списка выполнения, а затем определить, где все применяется.