Puppet

用 vagrant 測試 puppet master

  • February 17, 2016

我是木偶新手。我讀了一堆,設法編寫了一個簡單的(可能是笨拙的)清單來配置主機以及一個類似簡單的結構腳本來處理預木偶設置。太好了,所以是時候更認真了。我在apache2下配置了一個puppet master。(感謝 puppet labs 的 deb,我在 ubuntu 14.04 上使用 3.8 版的軟體包…)

到目前為止,一切都很好,但是儘管進行了很多搜尋和比賽,但我現在仍停留在幾個點上。 最終,這歸結為如何設置回歸測試,以便我相信我總是可以重新創建我的基礎設施。

  1. puppet master在apache2下執行。我認為它是健康的,因為它沒有抱怨,而且我在 8140 上服務。但我希望有一個比沒有錯誤更好的方式來確認這一點。有什麼方法可以查詢主人的健康嗎?
  2. 我希望能夠進行自動化測試。對於代理(我的(小)艦隊中的個人主機),我可以調出 vagrant vm,告訴他們他們的名字是 X,然後進行 puppet 申請。因此,我可以查看主機是否按照我對主機 X 的期望出現。然後我可以在 vm 上執行一個腳本,檢查我認為主機實際上應該做什麼。但我想自動化它,但奇怪的是我還沒有找到這樣做的通用食譜。我敢打賭這不是我需要發明的東西。任何指針?
  3. 同樣,我也想為 master 做自動化測試。所以這是(1)和(2)在一起,因為我不確定如何測試大師。

感謝您的任何指示。

  1. puppetmaster本身並沒有提供太多資訊。如果您將以下內容添加到/etc/puppet/auth.conf
path ~ ^/status/no_key$
auth off
allow *

您應該能夠在puppetmaster不提供證書的情況下查詢狀態(使用 將特定 IP 列入白名單可能是個好主意allow_ip

curl -ksS -H "Accept: pson" https://puppet.example.com:8140/production/status/no_key

應該使用 HTTP 200 響應:

{"is_alive":true,"version":"3.8.1"}

除此之外,puppetmaster在 YAML 中儲存了大量資訊,通常在/var/lib/puppet/reports/. 但這些報告對人類並不友好。因此,您可能正在尋找類似puppet-dashboard的東西,它曾經是官方 Puppet 發行版的一部分,現在作為開源項目開發。

木偶儀表板

  1. Puppet 模組通常使用rspec-puppet進行測試,它是通用 Ruby 測試框架的擴展。您可能正在尋找Beaker,它結合了 Vagrant 盒子和 rspec-puppet 測試。看看這個教程
  2. 當然,您可能不想在生產環境中調試程式碼。 錯誤傳播

有幾種方法可以解決這個問題。其中之一是使用帶有r10k角色/配置文件方法的工作流。或者你可以啟動一組 Vagrant 盒子,在本地測試,然後部署。管理使用過的 puppet 模組的版本絕對是個好主意,例如使用puppet-librarianr10k。Puppet 正在不斷發展,因此首選工具列表可能會隨著時間而改變。

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