Chef

廚師:從 json 角色中的加密數據包載入屬性

  • June 3, 2014

我想為廚師使用後綴食譜。sasl 密碼應位於屬性中。所以通常你會這樣做:

"default_attributes": {
 "postfix": {
   "sasl": {
     "smtp_sasl_passwd": "somepassword"
   }
 }
}

問題是:我不想在儲存庫中以純文字形式保存密碼。所以我把它放在一個加密的數據包裡。現在我想訪問它。這可以通過以下方式完成:

Chef::EncryptedDataBagItem.load("passwords", "postfix")['password']

問題:這只適用於 .rb 文件,但我的角色是 json;我所有的角色都在 json 中!我不想僅僅為了這個目的而改變它。有人知道在這裡做什麼嗎?非常感謝幫助。

將您的角色轉換為 Ruby DSL 在這裡沒有幫助 - 它們在上傳到 Chef 伺服器之前被轉換為 JSON,並且它是由 chef-client 載入的 JSON 版本。環境也是如此。

換句話說,無法從角色或環境載入數據包(加密或其他方式)。您需要將這種邏輯放入食譜食譜中。

引用自:https://serverfault.com/questions/591047