假設您通過廚師工作站通過「knife bootstrap」引導了一個Ubuntu節點,指定了使用參數「--bootstrap-version」安裝在節點上的廚師客戶端版本「as」12.9.41「。廚師:在節點上的刀補助中升級廚師客戶端版本
在你將得到一個對刀命令指定的自舉操作節點的廚師客戶端版本檢查結束:
[[email protected] greg]# chef-client -v
Chef: 12.9.41
現在假設你想在升級廚師客戶端版本你的節點。例如,因爲運行列表上的新烹飪書需要更新的版本才能正常工作。
[[email protected] greg]# chef-client -v
Chef: 12.9.41
在刀引導命令:
如果你在最後的廚師,客戶仍對節點在同一再次運行引導命令中指定,而不是「--bootstrap版24年12月10日」標準輸出你也:
34.210.102.44 [sudo] password for greg: -----> Existing Chef installation detected
34.210.102.44 Starting the first Chef Client run...
34.210.102.44 Starting Chef Client, version 12.9.41
有沒有辦法告訴刀「力」版的「--bootstrap版」規定,即使是安裝在節點上的另一個廚師客戶端版本?
替代方法
我找到了另一種方式來做到這一點使用上的刀引導命令「--bootstrap安裝命令」參數,指定去拆卸和安裝bash命令手動目標版本:
--bootstrap-install-command "sudo apt-get remove chef -y && curl -LO https://omnitruck.chef.io/install.sh && sudo bash ./install.sh -v 12.10.24 && rm install.sh"
執行節點廚師客戶端版本後是新的:
[[email protected] greg]# chef-client -v
Chef: 12.10.24
關於我的測試情況的一些細節:
[ChefServer]
ChefServer version: 12.3.1
chef-client version: 12.5.1
berks version: 4.0.1
[Workstation]
SO: Ubuntu 14.04
Workstation Knife version: 12.19.36
[Node]
SO: Ubuntu 14.04
當然。在我的情況下,我想覆蓋廚師服務器上的現有節點。所以一般來說,如果引導程序是「覆蓋」引導程序,或者由於某種原因,另一個chef-client版本已經存在於節點上,那麼** - bootstrap-version **參數將不會生效。 我認爲在任何情況下,引導操作都會強制目標節點上的主廚客戶端版本。 正如您所建議的,我發現了一本食譜,可以使用特定版本(https://supermarket.chef.io/cookbooks/chef_client_updater)在節點上升級廚師。謝謝! – gregorycallea