Chef - 檔案與包



在 Chef 中,建立配置檔案和移動軟體包是關鍵元件。Chef 管理這些元件有多種方式。Chef 支援處理檔案和軟體包也有多種方式。

從第三方倉庫安裝軟體包

步驟 1 - 編輯 Cookbook 的預設菜譜。

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 - 編輯元資料以新增對 apt Cookbook 的依賴關係。

vipin@laptop:~/chef-repo $ subl cookbooks/my_cookbook/metadata.rb 
... 
depends "apt"

步驟 3 - 將修改後的 Cookbook 上傳到 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 - 將修改後的 Cookbook 上傳到 Chef 伺服器。

步驟 3 - 在節點上執行 Chef-Client。

步驟 4 - 驗證 nginx 是否已安裝。

廣告