Учебники

Шеф-повар — Файлы и пакеты

В 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 установлен.