Linux中國

用 Foreman 管理 CentOS Stream

2021 年 12 月,CentOS 8 將達到生命終點,被 CentOS Stream 取代。CentOS Stream 和 CentOS 之前的迭代之間的主要變化之一是沒有小版本。Centos Stream 採用了一個連續的發布周期。從今年年初開始,Foreman 社區的開發者開始看到 CentOS Stream 由於持續發布而提供的更早的錯誤檢測和補丁的好處。我們不再需要等待下一個版本來利用最新的變化和錯誤修復。一位資深的 Linux 社區愛好者 指出,此舉也使 RHEL 開發者比以往更接近 FOSS 社區。

然而,如果你是一個擁有數百或數千台伺服器的管理員,你可能想控制新的軟體包何時被添加到特定的伺服器。如果你正在尋找一個免費的開源工具,幫助你確保生產伺服器的穩定性,同時允許你安全地從 Centos Stream 中拉入最新的變化用於開發和測試,這就是 Foreman 可以幫助你的地方。有了 Foreman,你可以在生命周期環境的各個階段管理你的 Centos Stream 內容。

Foreman 介紹

Foreman 是一個完整的物理和虛擬伺服器的生命周期管理工具。有了 Foreman,系統管理員有能力輕鬆實現重複性任務的自動化,快速部署應用程序,並主動管理內部或雲中的伺服器。Foreman 為 配備 provisioning 管理、配置管理和監控提供了企業級解決方案。由於其插件架構,Foreman 可以以無數種方式進行擴展。使用 Katello 插件,你可以把 Foreman 作為一個完整的 內容管理 content management 工具來管理 CentOS Stream,以及其他許多內容類型。

通過 Foreman 和 Katello,你可以準確地定義你希望每個環境包含哪些軟體包。例如,生產環境可能使用已被驗證為穩定的軟體包,而開發環境可能需要最新、最先進的軟體包版本。你還可以跨生命周期環境推廣 內容視圖 content view 。讓我們來看看 Foreman 是如何完成這個任務的。

我們在這篇文章中使用了網頁用戶界面,但 Foreman 也有一個強大的 CLI 和 API。Katello 插件為 Pulp 項目提供了一個工作流和網頁用戶界面,你可以在 這篇文章 中了解更多。我們在這裡也提供了一個簡單的工作流程,但是 Foreman 和 Katello 項目提供了許多不同的配置選項來滿足你的具體需求。

本文假設 Foreman 和 Katello 已經安裝完畢。關於如何安裝的更多信息,請參閱 Katello 安裝手冊

創建一個產品

第一步是在 Foreman 中創建一個 產品 product 。該產品的功能是作為一個內部標籤來存儲 CentOS Stream 存儲庫。

  1. 在 Foreman 網頁用戶界面,導航到「 內容 Content > 產品 Products 」,並點擊「 創建產品 Create Product 」。
  2. 在「 名稱 Name 」欄位中,為產品輸入一個名稱。Foreman會根據你輸入的「 名稱 Name 」自動完成「 標籤 Label 」欄位,以後不能再更改。

將 CentOS Stream 存儲庫添加到產品中

現在你有了一個產品,你可以使用 AppStream 和 BaseOS 存儲庫的 URL,並將它們添加到你的新產品中。

  1. 在 Foreman 網頁用戶界面中,導航到 「 內容 Content > 產品 Products 」,選擇你要使用的產品,然後點擊 「 新存儲庫 New Repository 」。
  2. 在「 名稱 Name 」欄位中,為存儲庫輸入一個名稱;例如,「Centos8StreamBaseOS」。Foreman 會根據你輸入的「 名稱 Name 」,自動完成「 標籤 Label 」欄位。
  3. 從「 類型 Type 」列表中,選擇存儲庫的類型,然後選擇「Yum」。
  4. 在 「URL」 欄位中,輸入 CentOS Stream Baseos 存儲庫的 URL,作為源: http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/
  5. 選擇「 下載規則 Download Policy 」列表。默認的是「 按需 On Demand 」,這意味著 Katello 將只下載元數據。如果你想下載所有的軟體包,請改成「 即時 Immediate 」,它可以下載所有的軟體包,可能會達到 20-30GB。
  6. 確保「 與鏡像同步 Mirror on Sync 」複選框被選中。這個選項確保在同步過程中,不再是上游存儲庫的一部分的內容被刪除。
  7. 點擊「 保存 Save 」。

重複這些步驟,添加 AppStream 存儲庫及其 URL,例如,http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/。確保你使用最近的官方 CentOS 鏡像來代替它。

要執行立即同步,在你的產品窗口,點擊「 立即同步 Sync Now 」。最初的同步可能需要一些時間。你可以從「 內容 Content > 同步狀態 Sync Status 」查看同步狀態。

同步完成後,你可以在「 主機 Hosts > 操作系統 Operating System 」中查看新的 CentOS Stream 操作系統。請隨意編輯名稱和描述以滿足你的要求。

如果你打算使用 Ansible 或 Puppet 等配置管理軟體,Foreman 會自動創建一個操作系統報告。你可以在「 管理 Administe > 設置 Settings > 忽略操作系統狀況 Ignore facts for operating system 」中關閉這個選項。重命名操作系統以匹配配置管理軟體中的名稱是一個好主意。例如,對於 Puppet,這將是「CentOS 8」。

定義你的基礎設施的生命周期環境

應用程序生命周期是 Foreman 的內容管理功能的一個核心概念。應用程序的生命周期定義了一個特定的系統和它的軟體在特定階段的狀況。例如,一個應用程序的生命周期可能很簡單,你可能只有一個「開發」階段和「生產」階段。Foreman 提供了一些方法來以可控的方式定製每個應用生命周期階段,以適應你的規範。

在這一點上,你必須創建你的生命周期環境路徑。

  1. 在 Foreman 網頁用戶界面中,導航到「 內容 Content > 生命周期環境 Lifecycle Environments 」。
  2. 點擊「 新環境路徑 New Environment Path 」,開始一個新的應用生命周期。
  3. 在「 名稱 Name 」欄位中,為你的環境輸入一個名稱。
  4. 在「 描述 Description 」欄位中,為你的環境輸入一個描述。
  5. 點擊「 保存 Save 」。
  6. 根據你的需要添加儘可能多的環境路徑。例如,你可以創建「dev」、「test」、「stage」 和 「production」 環境。要添加這些環境,點擊「添加新環境」,完成「 名稱 Name 」和「 描述 Description 」欄位,並從「 優先環境 Prior Environment* 」列表中選擇先前的環境,這樣你就可以按照你預期使用的順序將它們串聯起來。

創建和發布一個內容視圖

在 Foreman 中,「 內容視圖 Content View 」是你的存儲庫在某個特定時間點的快照。內容視圖提供了隔離軟體包版本到你想保留的狀態的機制。內容視圖有很多可配置的功能,你可以用它來進一步細化。為了本教程的目的,讓我們保持簡單。

  1. 在 Foreman 網頁用戶界面中,導航到「 內容 Content > 內容視圖 Content View 」,並點擊「 創建新視圖 Create New View 」。
  2. 在「 名稱 Name 」欄位中,為視圖輸入一個名稱。Foreman 會根據你輸入的名稱自動完成「 標籤 Label 」欄位。
  3. 在「 描述 Description 」欄位中,輸入視圖的描述。
  4. 單擊「 保存 Save 」以創建內容視圖。
  5. 在新的內容視圖中,點擊「 Yum 內容 Yum Contents > 添加存儲庫 Add Repositories 」,在「 存儲庫選擇 Repository Selection 」區域,點擊「 添加 Add 」。對於 BaseOS 和 Appstream 存儲庫,選擇你想包括的軟體包,然後點擊「 添加存儲庫 Add Repositories 」。
  6. 點擊「 發布新版本 Publish New Version 」,在「 描述 Description 」區域,輸入關於版本的信息以記錄變化。
  7. 單擊「 保存 Save 」。

當你點擊「 發布新版本 Publish New Version 」時,你創建了一個你已同步的所有內容的快照。這意味著你訂閱此內容視圖的每台伺服器將只能訪問與此生命周期環境相關的內容視圖中的軟體包版本。

每一個新的內容視圖和後續版本都會首先發布到庫環境,然後你可以在那裡推廣到其他環境。

跨生命周期環境推廣內容

如果你已經測試了新的軟體包,並且確信一切都很穩定,你可以把你的內容視圖推廣到另一個生命周期環境中。

  1. 導航到「 內容 Content > 內容視圖 Content Views 」,選擇你想推廣的內容視圖。
  2. 點擊內容視圖的「 版本 Versions 」標籤。
  3. 選擇你想推廣的版本,並在「 操作 Action 」欄中,點擊「 推廣 Promote 」。
  4. 選擇你要推廣內容視圖的環境,並點擊「 推廣版本 Promote Version 」。
  5. 再次點擊「 推廣 Promote 」按鈕。這次選擇生命周期環境,例如,「Test」,然後單擊「 推廣版本 Promote Version 」。
  6. 最後,再次點擊「 推廣 Promote 」按鈕。例如,選擇「Production」環境並點擊「 推廣版本 Promote Version 」。

被分配到該特定環境的伺服器現在可以從一套更新的軟體包中提取。

創建一個激活密鑰

為了將 CentOS Stream 伺服器註冊到你在特定生命周期中定義的內容,你必須創建一個激活密鑰。激活密鑰是一種與伺服器共享憑證的安全方法。這使用了一個叫做「 訂閱管理器 subscription-manager 的工具來訂閱 CentOS Stream 伺服器的內容。

當你創建了激活密鑰後,將 CentOS Stream 訂閱添加到激活密鑰中。

  1. 在 Foreman 網頁用戶界面中,導航到「 內容 Content > 激活密鑰 Activation keys 」,並點擊「 創建激活密鑰 Create Activation Key 」。
  2. 在「 名稱 Name 」欄中,輸入激活密鑰的名稱。
  3. 在「 描述 Description 」欄中,輸入激活密鑰的描述。
  4. 從「 環境 Environment 」列表中,選擇要使用的環境。
  5. 從「 內容視圖 Content View 」列表中,選擇你剛才創建的內容視圖。
  6. 點擊「 保存 Save 」。

從 Foreman 管理的內容中創建一個 CentOS Stream 主機

現在一切都準備好了。隨著你創建的內容包含在內容視圖中,並在整個生命周期中推廣,你現在可以準確地用你想使用的內容來配置主機,並訂閱你想讓它們接收的更新。

要在 Foreman 中創建一個主機,請導航到「主機 > 創建主機」。

  1. 在「 名稱 Name 」欄位中,為主機輸入一個名稱。
  2. 單擊「 組織 Organization 」和「 位置 Location 」選項卡,以確保配置環境自動設置為當前環境。
  3. 從「 部署在 Deploy On 」列表中,選擇「 裸金屬 Bare Metal 」。
  4. 單擊「 操作系統 Operating System 」選項卡。
  5. 從「 架構 Architectures 」列表中,選擇「x86_64」。
  6. 從「 操作系統 Operating System 」列表中,選擇「CentOS_Stream 8」。
  7. 勾選「 構建模式 Build Mode 」框。
  8. 對於「 媒體選擇 Media Selection 」,選擇「 同步的內容 Synced Content 」來使用你之前同步的 CentOS Stream 內容。
  9. 從「 同步的內容 Synced Content 」列表中,確保選擇 「CentOS Stream」。
  10. 從「 分區表 Partition Table 」列表中,對於這個演示,選擇默認的 「Kickstart」,但有許多可用的選項。
  11. 在「 Root 密碼 Root Password 」欄中,為你的新主機輸入一個 root 密碼。
  12. 點擊「 介面 Interface 」標籤,並點擊「 編輯 Edit 」,並添加一個 「 Mac 地址 Mac address 」。
  13. 點擊「 參數 Parameters 」標籤,並確保存在一個提供激活密鑰的參數。如果沒有,添加一個激活密鑰。
  14. 點擊「 提交 Submit 」以保存主機條目。

現在,新的主機處於構建模式,這意味著當你打開它時,它將開始安裝操作系統。

如果你導航到「 主機 Hosts > 內容主機 Content Hosts 」,你可以看到你的主機所訂閱的訂閱、生命周期環境和內容視圖的全部細節。

這個例子只是對你在 Foreman 中管理和配置 CentOS Stream 內容的眾多選項的一個小窺視。如果你想了解更多關於如何管理 CentOS Stream 版本,控制你的伺服器可以訪問的內容,以及控制和保護你的基礎設施的穩定性的詳細信息,請查看 Foreman 內容管理 文檔。當所有 CentOS Stream 內容在你的控制之下時,你可以創建和註冊 Centos Stream,只使用你指定的內容。有關配備的更多詳細信息,請參見 Foreman 配備 文檔。如果你有任何問題、反饋或建議,你可以在 https://community.theforeman.org/ 找到 Foreman 社區。

via: https://opensource.com/article/21/9/centos-stream-foreman

作者:Melanie Corr 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國