Puppet

確保 Puppet 在部署過程中執行程序步驟

  • January 21, 2020

我知道在 Puppet 中使用程序步驟通常不受歡迎,但由於我們使用它來部署 Veritas 管理的集群應用程序,因此在呼叫 rpm 安裝之前必須執行一組特定的步驟。

目前,我們手動凍結 Veritas 集群,使其不會嘗試對應用程序進行故障轉移,執行 Puppet,它會安裝 RPM(必要時關閉應用程序),並指示 Puppet 不要啟動應用程序。然後我們手動啟動應用程序並解凍 Veritas。最後,我們驗證狀態。

我想自動化那些 Veritas 步驟,這樣我們只需要執行 Puppet。這些步驟僅在我們的生產環境中完成。對於所有其他人,我們只需要呼叫 RPM 安裝。更複雜的是,如果沒有任何變化,我不想執行任何這些步驟。

做這樣的事情的首選方法是什麼?我正在閱讀有關Run Stages的資訊,但似乎需要對我現有的程式碼進行重大重構。

想知道是否有人可以給我一些關於如何處理這個問題的想法。

根據您對問題的描述,您需要使用計劃或將所有內容放入 exec 或腳本中,以便您可以指定事情的順序。Puppet 清單,因為它們不具備處理您的案例的能力。

一個例子是:


exec { 'do veritas upgrade' :
 onlyif => '${lookup(veritas_version)} is greater than /usr/bin/veritas --version',
 exec => 'freeze && stop && install && start && unfreeze && verify',
}

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