傀儡 eval 變數僅一次

傀儡 eval 變數僅一次

我為新用戶產生密碼阿普格

簡單的:

$password = generate('/etc/puppet/utils/gen_password')

此命令的唯一問題是我只需要它一次,但每次運行 puppet 時都會對其進行評估。

該變數在一個內部使用執行者宣言。

是否有可能僅在必要時才評估變數?例如,如果它是第一次使用。

答案1

您可以使用多個選項來有條件地執行 exec。選擇哪一個適合您的需求:

  • 除非- 如果設定了此參數,除非命令傳回 0,否則此 exec 將運行。
  • 創造- 運行命令之前要查找的檔案。僅當檔案不存在時該命令才會運行。
  • 除非- 如果設定了此參數,則僅當命令返回 0 時此 exec 才會運行。
  • 僅刷新- 此指令僅應在依賴物件發生變更時作為刷新機制運作。

答案2

如果您沒有在 Exec 中使用密碼,那麼建議的方法卡齊米埃拉斯·阿留利斯可能不適合你。

如果是我,我可能只會修改/etc/puppet/utils/gen_password腳本以始終為每個服務/主機傳回相同的密碼。你會讓傀儡像這樣稱呼將軍generate("/etc/puppet/utils/gen_password $::clientcert")

然後在腳本中,您將檢查是否已為該系統產生密碼以及是否已傳回密碼。如果沒有,則產生一個新的,將其儲存並返回。

如果可能的話,不要儲存並傳回未加密的密碼。相反,產生並傳回加鹽密碼雜湊值。

當然,如果您可以完全跳過使用密碼,而是使用憑證或金鑰進行身份驗證,那就更好了。

相關內容