В Chef создание конфигурационных файлов и перемещение пакетов являются ключевыми компонентами. Есть несколько способов, как Chef управляет одним и тем же. Есть несколько способов, которыми Chef поддерживает работу с файлами и пакетами программного обеспечения.
Установка пакетов из стороннего репо
Шаг 1 — Отредактируйте рецепт по умолчанию из поваренной книги.
vipin@laptop:~/chef-repo $ subl cookbooks/test_cookbook/recipes/default.rb include_recipe "apt" apt_repository "s3tools" do uri "http://s3tools.org/repo/deb-all" components ["stable/"] key "http://s3tools.org/repo/deb-all/stable/s3tools.key" action :add end package "s3cmd"
Шаг 2 — Отредактируйте метаданные, чтобы добавить зависимость от подходящей поваренной книги.
vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/metadata.rb ... depends "apt"
Шаг 3 — Загрузите измененную поваренную книгу на сервер Chef.
Шаг 4. Убедитесь, что пакет, который вы пытаетесь установить, еще не установлен.
Шаг 5 — Подтвердите репо по умолчанию.
Шаг 6 — Запустите Chef-Client на узле.
Шаг 7 — Проверьте, установлен ли требуемый пакет.
Установка программного обеспечения из источника
Если нужно установить часть программного обеспечения, которая не доступна в виде пакета для данной платформы, необходимо скомпилировать его самостоятельно. В Chef мы можем сделать это с помощью ресурса script.
Шаг 1 — Изменить рецепт по умолчанию.
vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/recipes/ default.rb version = "1.3.9" bash "install_nginx_from_source" do cwd Chef::Config['file_cache_path'] code ≪-EOH wget http://nginx.org/download/nginx-#{version}.tar.gz tar zxf nginx-#{version}.tar.gz && cd nginx-#{version} && ./configure && make && make install EOH
Шаг 2 — Загрузите измененную поваренную книгу на сервер Chef.
Шаг 3 — Запустите Chef-Client на узле.
Шаг 4 — Убедитесь, что nginx установлен.