2014-07-16 148 views
10

我想了解廚師客戶端和驗證器的概念,以及它們與bootstrapping過程的關係。廚師的客戶端和驗證器

this article,廚師,客戶端將使用/etc/chef/validation.pem私人密鑰本身的初始運行驗證,因爲/etc/chef/client.pem還不存在。該初始運行將以某種方式生成client.pem,然後用於所有後續的客戶端請求。

我的問題:

  1. 什麼樣的過程置於首位廚師客戶端節點上的/etc/chef/validation.pem文件? Bootstrap?有人可以提供一個刀子命令的例子嗎?
  2. 同樣的問題,但對於/etc/chef/client.pem文件。
  3. 什麼決定了廚師客戶和廚師驗證者的名字?

回答

8

回答您的問題更新

1)Validation.Pem(和client.rb)將在引導過程之後創建。您需要運行下面顯示的命令(knife configure client)以創建這些文件。一旦這些文件在〜/ .chef目錄中創建你需要將它們移動到/ etc /廚師

knife configure client ~/.chef 
sudo su 
mkdir -p /etc/chef 
cp ~/.chef/client.rb /etc/chef 
cp ~/.chef/validation.pem /etc/chef 

和輸出將

創建客戶端配置 寫作client.rb 編寫驗證.pem

2)Client.pem將在第一次廚師 - 客戶端運行期間創建。廚師文件摘錄

「在第一個廚師客戶端運行期間,這個(client.pem)私鑰不存在,而是廚師客戶端將嘗試使用分配給廚師驗證器的私鑰,位於/etc/chef/validation.pem(如果由於某種原因,廚師驗證人無法向廚師服務器進行認證請求,則初始廚師客戶端運行將失敗。)「

For例如,我通常按照以下方式進行操作。一旦客戶機設置(首次)和I使用廚師-client命令如下運行該節點上的廚師食譜那麼它會自動創建client.pem

chef-client -o Cookbook_name::Recipe_Name 

3)請確認您的主機名是獨特/正確之前做這件事。在Centos上,更改/ etc/sysconfig/network文件並使用/etc/init.d/network restart重新綁定所有內容。

我對第一個問題的回答是這裏的解決方案。運行命令(通常該命令引導之後運行)

knife configure client ~/.chef 

所述客戶端節點的主機名之後將在廚師服務器被自動創建。


回答你的第一個和第二個問題(編輯問題之前)

1)您在下面的鏈接查看http://mychefserver.example.com/clients被髮送了與該特定廚師註冊節點(物理機)的一切-服務器。 Chef-Client是一個代理,可以在每個向主廚服務器註冊的節點上運行。 Chef-client用於在相應的節點上運行食譜。以下是使用廚師客戶端在節點上運行廚師食譜的方法。

chef-client -o Cookbook_name::Recipe_Name 

把所有在一起的客戶端的組,其連接到廚師服務器廚師客戶端是在所有的節點上運行的代理並用於註冊與廚師服務器的節點,以便使節點該節點到期望的狀態。廚師客戶還有許多其他用途。有關詳細信息,請訪問[Chef-Client] [1]文檔頁面。

2)引導程序是一個將chef-client安裝在目標系統上的過程,以便它可以作爲chef-client運行並與Chef服務器通信。

換句話說,引導過程是在節點(硬件機器)上安裝chef-client並將該節點作爲該廚師服務器的客戶端之一的方式。只有在引導過程完成後,該特定節點纔會顯示在您的客戶端列表中

http://mychefserver.example.com/clients 
+1

此問題解決了編輯問題之前的問題。 –

+0

感謝@grep代碼(+1)! – IAmYourFaja

+0

@IAmYourFaja。不用謝。請找到更新的答案 –