Chef - Pliki i pakiety
W Chef tworzenie plików konfiguracyjnych i przenoszenie pakietów to kluczowe elementy. Chef zarządza tym samym na wiele sposobów. Istnieje wiele sposobów, w jakie Chef obsługuje pliki i pakiety oprogramowania.
Instalowanie pakietów z repozytorium innych firm
Step 1 - Edytuj domyślny przepis z książki kucharskiej.
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"
Step 2 - Edytuj metadane, aby dodać zależność od książki kucharskiej apt.
vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/metadata.rb
...
depends "apt"
Step 3 - Prześlij zmodyfikowaną książkę kucharską na serwer Chef.
Step 4 - Sprawdź, czy pakiet, który próbujesz zainstalować, nie jest jeszcze zainstalowany.
Step 5 - Sprawdź poprawność domyślnego repozytorium.
Step 6 - Uruchom Chef-Client na węźle.
Step 7 - Sprawdź, czy wymagany pakiet jest zainstalowany.
Instalowanie oprogramowania ze źródła
Jeśli trzeba zainstalować oprogramowanie, które nie jest dostępne w pakiecie dla danej platformy, należy je samodzielnie skompilować. W Chef możemy to zrobić za pomocą zasobu skryptu.
Step 1 - Edytuj domyślną recepturę.
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
Step 2 - Prześlij zmodyfikowaną książkę kucharską na serwer Chef.
Step 3 - Uruchom Chef-Client na węźle.
Step 4 - Sprawdź, czy nginx jest zainstalowany.