2014-10-08 92 views
1

當我爲主機生成新客戶端密鑰並將其放入/etc/chef/client.pem時,我的廚師客戶端運行順利,除結束狀態始終標記爲「Chef Client失敗」。我相信這是節點試圖在主服務器上自行更新的節點數據,並且不知何故數據需要舊的client.pem文件。廚師客戶端重新註冊打破節點數據保存回廚師服務器的能力

爲了讓更多的上下文:

  1. 我的主機磁盤的模具,它被重新成像。一旦安裝了操作系統,我需要與主廚一起啓動。
  2. 我寧願不改變與這個節點相關的角色。因此,我的自動化在主機安裝後從安全服務器複製validation.pem,headless_admin.pem並執行其餘的'DELETE/clients/clientname'。我不'DELETE/nodes/nodename',因爲我想保留與nodename相關的角色。
  3. 運行廚師客戶端現在可以生成一個新的client.pem文件(類似於從工作站做一個「刀子客戶重新註冊客戶端名」。
  4. 然而,儘管這個廚師的客戶端運行收斂的預期,這在撈出與一個失敗的國家結束。啓用調試模式不提供任何更多的信息。我強烈懷疑這是失敗的節點嘗試廚師服務器上更新其保存的狀態。

有沒有一種方法,使客戶端忽略對client.pem的任何改變並更新其節點狀態(沒有這種情況,重新註冊的整個概念似乎毫無意義)

感謝您的閱讀和對此的任何見解

回答

1

假設您正在使用Enterprise Chef或新Chef Server 12,則需要修復節點對象上的ACL。默認情況下,當客戶端首先創建自己的節點對象時,它會繼承對它的寫入權限。在舊的開放源代碼服務器(11)中,此檢查更簡單,客戶端和節點的名稱必須匹配,但ACL系統稍微複雜一些。你可以通過knife-acl解決這個問題。

+0

我沒有嘗試過這種行爲與廚師11,新鮮重新創建的客戶端不能訪問其具有相同名稱的舊節點(沒有真正挖掘原因)。我們通過導出節點對象並在客戶端註冊後重新導入它來解決這個問題。 – Tensibai 2014-10-08 07:55:03

+0

@Tensibai - 你會分享如何導出節點對象。是否爲每個節點對象備份(覆蓋以前的保存)並在主機需要重新註冊時進行恢復(例如,在重新映像之後) – faheem 2014-10-08 17:44:21

+0

@coderanger - 感謝指針。我正在研究這個。我們使用企業廚師 – faheem 2014-10-08 17:46:13