簡體   English   中英

使用Puppet&Hiera的Git工作流程

[英]Git workflow using Puppet & Hiera

我們是一個2人團隊,使用puppet / Hiera來管理20台服務器。 到目前為止,我們在開發清單時沒有使用任何VCS。

我已經在puppetmaster上配置了一個遠程Git倉庫,並將我們的清單和模塊文件夾推送到主分支(用於開發)並推送了一個相同的生產分支。 遠程倉庫有一個后釋放鈎子 ,它根據分支名稱(或更新,如果存在)配置新環境,並且puppetmaster具有動態環境,配置為使其能夠工作。 puppet博客上詳細討論了這種配置。

我們的工作流程是我們每個人在我們的本地主分支上開發的,當我們准備好測試時,我們提交,然后推送,並且post-release hook更新開發環境。 然后我們可以通過使用puppetd --test --environment development來測試(我們不認為我們需要一個單獨的登台環境)測試客戶端上的更改。 如果一切按預期工作,那么我們任何一方都可以將開發分支合並到生產中並推送再次更新生產環境。

問題

  1. 這是使用Git和Puppet的最佳工作流程嗎?
  2. 我們如何實際測試開發環境。 我們有可以使用的備用服務器但我們是否使用與節點聲明中指定的生產服務器相同的主機名配置它們? 如果我們這樣做,那么來自Hiera的一些節點特定數據(例如IP地址)將是錯誤的。 或者我們使用--environment development switch在生產服務器上進行測試並使用--noop?

任何建議將不勝感激。

您可能想要做的一件事是使用暫存VM。 在推送更改之前,如果一切正常,則在VM上測試它們然后推送更改。

對於puppet使用VCS與使用代碼的VCS有所不同。 有時你的推動“可能會破壞構建”,可以這么說。 因此,使用Git標記來描述一切正常的提交,這將幫助您確保不會恢復到其中一個“錯誤”提交。

我假設您有一個jenkins服務器配置來輪詢您的git存儲庫

我理想的工作流程如下:

  • 本地
    • 創建功能分支功能/ add-nfs-mount
    • 添加對modules / hiera / puppet實驗室的修改
    • 添加與修改相關的rspec測試(理想情況下使用您的生產層數據並驗證配置文件實際上是否包含預期值)
    • 運行rspec-puppet
    • 通過流浪漢配置進行測試
    • 推動功能分支
  • 詹金斯
    • ci檢測推送,啟動我的測試lint ,...
    • 請求您的同事通過拉取請求查看您的更改
  • 一旦合並了ci就開始構建管道
    • 再次啟動測試
    • 促進升級(合並功能分支開發)
    • 讓木偶提供升級
    • 手動/自動檢查登台平台的所需狀態
    • 我們有一個手動步驟,以促進生產(合並開發在主人)

希望這個幫助

斯蒂芬

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM