
- Puppet 教程
- Puppet - 首頁
- Puppet 基礎
- Puppet - 概述
- Puppet - 架構
- Puppet - 安裝
- Puppet - 配置
- Puppet - 環境配置
- Puppet - 主伺服器
- Puppet - 代理設定
- Puppet - SSL 證書設定
- r10K 的安裝和配置
- Puppet - 驗證設定
- Puppet - 程式碼風格
- Puppet - 清單檔案
- Puppet - 模組
- Puppet - 檔案伺服器
- Puppet - Facter 和事實
- 高階 Puppet
- Puppet - 資源
- Puppet - 資源抽象層
- Puppet - 模板
- Puppet - 類
- Puppet - 函式
- Puppet - 自定義函式
- Puppet - 環境
- Puppet - 型別和提供程式
- Puppet - RESTful API
- Puppet - 即時專案
- Puppet 有用資源
- Puppet - 快速指南
- Puppet - 有用資源
- Puppet - 討論
Puppet - 環境
在軟體開發和交付模型中,存在不同型別的測試環境,用於測試特定產品或服務。作為標準實踐,主要有三種環境:開發、測試和生產,每種環境都有自己的配置。
Puppet 支援管理多個環境,與 Ruby on Rails 的方式類似。建立這些環境的關鍵因素是提供一種易於管理不同 SLA 協議級別的機制。在某些情況下,機器始終需要保持執行,沒有任何容忍度,並使用舊軟體。而其他環境則保持最新狀態,用於測試目的。它們用於對更重要的機器進行升級。
Puppet 建議堅持使用標準的生產、測試和開發環境配置,但是,它也允許使用者根據需要建立自定義環境。
環境目標
按環境劃分設定的主要目標是,Puppet 可以擁有模組和清單的不同來源。然後,可以在測試環境中測試配置更改,而不會影響生產節點。這些環境還可以用於在不同的網路來源上部署基礎設施。
在 Puppet Master 上使用環境
環境的重點是測試需要傳送給客戶端的清單、模組和檔案模板。因此,必須配置 Puppet 以提供特定於環境的這些資訊的來源。
Puppet 環境的實現方法很簡單,只需向伺服器的 puppet.conf 檔案中新增預環境部分,併為每個環境選擇不同的配置源。然後,這些預環境部分將優先於主部分使用。
[main] manifest = /usr/testing/puppet/site.pp modulepath = /usr/testing/puppet/modules [development] manifest = /usr/testing/puppet/development/site.pp modulepath = /usr/testing/puppet/development/modules
在上面的程式碼中,開發環境中的任何客戶端都將使用位於目錄 **`/usr/share/puppet/development`** 中的 site.pp 清單檔案,並且 Puppet 將在 **`/usr/share/puppet/development/modules`** 目錄中搜索任何模組。
執行 Puppet 時,無論是否使用任何環境,都將預設為 site.pp 檔案以及主配置部分中 manifest 和 modulepath 值指定的目錄。
實際上只有少數配置有意義地進行預環境配置,所有這些引數都圍繞著指定要用於編譯客戶端配置的檔案。
以下是引數。
**Modulepath** − 在 Puppet 中,作為基本標準模式,最好有一個所有環境共享的標準模組目錄,然後是一個可以儲存自定義模組的預環境目錄。模組路徑是 Puppet 搜尋所有與環境相關的配置檔案的位置。
**Templatedir** − 模板目錄是儲存所有相關模板版本的位置。模組應優先於這些設定,但是它允許在每個環境中擁有給定模板的不同版本。
**Manifest** − 這定義了哪個配置用作入口點指令碼。
使用多個模組,Puppet 有助於獲得配置的模組化。可以在 Puppet 中使用多個環境,如果主要依賴於模組,則效果更好。透過將更改封裝在模組中,更容易將更改遷移到環境。檔案伺服器使用特定於環境的模組路徑;如果從模組而不是單獨掛載的目錄進行檔案服務,則此環境將能夠獲取特定於環境的檔案,最終當前環境也將在清單檔案中以 `$environment` 變數的形式可用。
設定客戶端環境
與環境配置相關的全部配置都在 puppet.conf 檔案中完成。要指定 Puppet 客戶端應使用哪個環境,可以在客戶端的 puppet.conf 檔案中為 environment 配置變數指定一個值。
[puppetd] environment = Testing
配置檔案中的上述定義定義了配置檔案所在的哪個環境,在本例中為 testing。
也可以使用以下命令列指定:
#puppetd -–environment = testing
或者,Puppet 還支援在環境配置中使用動態值。開發人員無需定義靜態值,而是可以建立自定義事實,根據其他客戶端屬性或外部資料來源建立客戶端環境。首選方法是使用自定義工具。這些工具能夠指定節點的環境,並且通常更擅長指定節點資訊。
Puppet 搜尋路徑
Puppet 使用簡單的搜尋路徑來確定需要在目標機器上應用哪個配置。同樣,Puppet 中的搜尋路徑在嘗試獲取需要應用的適當值時非常有用。Puppet 在下面列出的多個位置搜尋需要應用的值。
- 在命令列中指定的值
- 在特定於環境的部分中指定的值
- 在特定於可執行檔案的部分中指定的值
- 在主部分中指定的值