2017-08-07 105 views
1

我遵循教程here來引導並註冊一個節點給廚師服務器。該實例處於自動調節組中,這就是爲什麼我選擇此方法進行自舉。 場景是 - 我通過userdata將s3中的client.rb,validation.pem,trusted_certs用於新啓動的實例。廚師客戶端失敗,因爲node_name不存在於client.rb中

client.rb

log_location  STDOUT 
chef_server_url "https://chef.myserver.org/organizations/org" 
validation_client_name "org-validator" 
# Using default node name (fqdn) 
trusted_certs_dir "/etc/chef/trusted_certs" 

下載下面的命令所需的文件後得到執行與$ INSTANCE_ID作爲NODE_NAME運行廚師客戶端。

chef-client -N $INSTANCE_ID -j /etc/chef/first-boot.json

初始引導成功和節點被註冊到廚師,服務器實例的編號作爲節點的名字,但運行的後續廚師客戶端時,它失敗,出現錯誤:

ERROR: 401 "Unauthorized" 

這是由於node_name不在client.rb中。 如何在第一次廚師 - 客戶端運行期間在client.rb中輸入node_name?

回答

0

這通常在userdata腳本或配置文件中處理,即la echo "node_name '$HOSTNAME'" >>/etc/chef/client.rb。具體細節可能因您的命名方案而異,有時您會對$HOSTNAME進行一些字符串編輯或完全使用其他名稱。這並非嚴格要求,但在配置文件中沒有名稱的情況下,Chef使用系統的當前FQDN,而且聽起來像是初始Chef運行中的某些內容會更改FQDN。另一種選擇是不這樣做。

相關問題