用 Foreman 管理 CentOS Stream
這個(gè)例子讓我們看到了在 Foreman 中管理和配置 CentOS Stream 內(nèi)容的許多選項(xiàng)。
2021 年 12 月,CentOS 8 將達(dá)到生命終點(diǎn),被 CentOS Stream 取代。CentOS Stream 和 CentOS 之前的迭代之間的主要變化之一是沒(méi)有小版本。Centos Stream 采用了一個(gè)連續(xù)的發(fā)布周期。從今年年初開(kāi)始,F(xiàn)oreman 社區(qū)的開(kāi)發(fā)者開(kāi)始看到 CentOS Stream 由于持續(xù)發(fā)布而提供的更早的錯(cuò)誤檢測(cè)和補(bǔ)丁的好處。我們不再需要等待下一個(gè)版本來(lái)利用最新的變化和錯(cuò)誤修復(fù)。一位資深的 Linux 社區(qū)愛(ài)好者 指出,此舉也使 RHEL 開(kāi)發(fā)者比以往更接近 FOSS 社區(qū)。
然而,如果你是一個(gè)擁有數(shù)百或數(shù)千臺(tái)服務(wù)器的管理員,你可能想控制新的軟件包何時(shí)被添加到特定的服務(wù)器。如果你正在尋找一個(gè)免費(fèi)的開(kāi)源工具,幫助你確保生產(chǎn)服務(wù)器的穩(wěn)定性,同時(shí)允許你安全地從 Centos Stream 中拉入最新的變化用于開(kāi)發(fā)和測(cè)試,這就是 Foreman 可以幫助你的地方。有了 Foreman,你可以在生命周期環(huán)境的各個(gè)階段管理你的 Centos Stream 內(nèi)容。
Foreman 介紹
Foreman 是一個(gè)完整的物理和虛擬服務(wù)器的生命周期管理工具。有了 Foreman,系統(tǒng)管理員有能力輕松實(shí)現(xiàn)重復(fù)性任務(wù)的自動(dòng)化,快速部署應(yīng)用程序,并主動(dòng)管理內(nèi)部或云中的服務(wù)器。Foreman 為配備管理、配置管理和監(jiān)控提供了企業(yè)級(jí)解決方案。由于其插件架構(gòu),F(xiàn)oreman 可以以無(wú)數(shù)種方式進(jìn)行擴(kuò)展。使用 Katello 插件,你可以把 Foreman 作為一個(gè)完整的內(nèi)容管理工具來(lái)管理 CentOS Stream,以及其他許多內(nèi)容類(lèi)型。
通過(guò) Foreman 和 Katello,你可以準(zhǔn)確地定義你希望每個(gè)環(huán)境包含哪些軟件包。例如,生產(chǎn)環(huán)境可能使用已被驗(yàn)證為穩(wěn)定的軟件包,而開(kāi)發(fā)環(huán)境可能需要最新、最先進(jìn)的軟件包版本。你還可以跨生命周期環(huán)境推廣內(nèi)容視圖。讓我們來(lái)看看 Foreman 是如何完成這個(gè)任務(wù)的。
我們?cè)谶@篇文章中使用了網(wǎng)頁(yè)用戶(hù)界面,但 Foreman 也有一個(gè)強(qiáng)大的 CLI 和 API。Katello 插件為 Pulp 項(xiàng)目提供了一個(gè)工作流和網(wǎng)頁(yè)用戶(hù)界面,你可以在 這篇文章 中了解更多。我們?cè)谶@里也提供了一個(gè)簡(jiǎn)單的工作流程,但是 Foreman 和 Katello 項(xiàng)目提供了許多不同的配置選項(xiàng)來(lái)滿(mǎn)足你的具體需求。
本文假設(shè) Foreman 和 Katello 已經(jīng)安裝完畢。關(guān)于如何安裝的更多信息,請(qǐng)參閱 Katello 安裝手冊(cè)。
創(chuàng)建一個(gè)產(chǎn)品
第一步是在 Foreman 中創(chuàng)建一個(gè)產(chǎn)品。該產(chǎn)品的功能是作為一個(gè)內(nèi)部標(biāo)簽來(lái)存儲(chǔ) CentOS Stream 存儲(chǔ)庫(kù)。
- 在 Foreman 網(wǎng)頁(yè)用戶(hù)界面,導(dǎo)航到“內(nèi)容 > 產(chǎn)品”,并點(diǎn)擊“創(chuàng)建產(chǎn)品”。
- 在“名稱(chēng)”字段中,為產(chǎn)品輸入一個(gè)名稱(chēng)。Foreman會(huì)根據(jù)你輸入的“名稱(chēng)”自動(dòng)完成“標(biāo)簽”字段,以后不能再更改。
將 CentOS Stream 存儲(chǔ)庫(kù)添加到產(chǎn)品中
現(xiàn)在你有了一個(gè)產(chǎn)品,你可以使用 AppStream 和 BaseOS 存儲(chǔ)庫(kù)的 URL,并將它們添加到你的新產(chǎn)品中。
- 在 Foreman 網(wǎng)頁(yè)用戶(hù)界面中,導(dǎo)航到 “內(nèi)容 > 產(chǎn)品”,選擇你要使用的產(chǎn)品,然后點(diǎn)擊 “新存儲(chǔ)庫(kù)”。
- 在“名稱(chēng)”字段中,為存儲(chǔ)庫(kù)輸入一個(gè)名稱(chēng);例如,“Centos8StreamBaseOS”。Foreman 會(huì)根據(jù)你輸入的“名稱(chēng)”,自動(dòng)完成“標(biāo)簽”字段。
- 從“類(lèi)型”列表中,選擇存儲(chǔ)庫(kù)的類(lèi)型,然后選擇“Yum”。
- 在 “URL” 字段中,輸入 CentOS Stream Baseos 存儲(chǔ)庫(kù)的 URL,作為源:
http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/
。 - 選擇“下載規(guī)則”列表。默認(rèn)的是“按需”,這意味著 Katello 將只下載元數(shù)據(jù)。如果你想下載所有的軟件包,請(qǐng)改成“即時(shí)”,它可以下載所有的軟件包,可能會(huì)達(dá)到 20-30GB。
- 確保“與鏡像同步”復(fù)選框被選中。這個(gè)選項(xiàng)確保在同步過(guò)程中,不再是上游存儲(chǔ)庫(kù)的一部分的內(nèi)容被刪除。
- 點(diǎn)擊“保存”。
重復(fù)這些步驟,添加 AppStream 存儲(chǔ)庫(kù)及其 URL,例如,http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/
。確保你使用最近的官方 CentOS 鏡像來(lái)代替它。
要執(zhí)行立即同步,在你的產(chǎn)品窗口,點(diǎn)擊“立即同步”。最初的同步可能需要一些時(shí)間。你可以從“內(nèi)容 > 同步狀態(tài)”查看同步狀態(tài)。
同步完成后,你可以在“主機(jī) > 操作系統(tǒng)”中查看新的 CentOS Stream 操作系統(tǒng)。請(qǐng)隨意編輯名稱(chēng)和描述以滿(mǎn)足你的要求。
如果你打算使用 Ansible 或 Puppet 等配置管理軟件,F(xiàn)oreman 會(huì)自動(dòng)創(chuàng)建一個(gè)操作系統(tǒng)報(bào)告。你可以在“管理 > 設(shè)置 > 忽略操作系統(tǒng)狀況”中關(guān)閉這個(gè)選項(xiàng)。重命名操作系統(tǒng)以匹配配置管理軟件中的名稱(chēng)是一個(gè)好主意。例如,對(duì)于 Puppet,這將是“CentOS 8”。
定義你的基礎(chǔ)設(shè)施的生命周期環(huán)境
應(yīng)用程序生命周期是 Foreman 的內(nèi)容管理功能的一個(gè)核心概念。應(yīng)用程序的生命周期定義了一個(gè)特定的系統(tǒng)和它的軟件在特定階段的狀況。例如,一個(gè)應(yīng)用程序的生命周期可能很簡(jiǎn)單,你可能只有一個(gè)“開(kāi)發(fā)”階段和“生產(chǎn)”階段。Foreman 提供了一些方法來(lái)以可控的方式定制每個(gè)應(yīng)用生命周期階段,以適應(yīng)你的規(guī)范。
在這一點(diǎn)上,你必須創(chuàng)建你的生命周期環(huán)境路徑。
- 在 Foreman 網(wǎng)頁(yè)用戶(hù)界面中,導(dǎo)航到“內(nèi)容 > 生命周期環(huán)境”。
- 點(diǎn)擊“新環(huán)境路徑”,開(kāi)始一個(gè)新的應(yīng)用生命周期。
- 在“名稱(chēng)”字段中,為你的環(huán)境輸入一個(gè)名稱(chēng)。
- 在“描述”字段中,為你的環(huán)境輸入一個(gè)描述。
- 點(diǎn)擊“保存”。
- 根據(jù)你的需要添加盡可能多的環(huán)境路徑。例如,你可以創(chuàng)建“dev”、“test”、“stage” 和 “production” 環(huán)境。要添加這些環(huán)境,點(diǎn)擊“添加新環(huán)境”,完成“名稱(chēng)”和“描述”字段,并從“優(yōu)先環(huán)境”列表中選擇先前的環(huán)境,這樣你就可以按照你預(yù)期使用的順序?qū)⑺鼈兇?lián)起來(lái)。
創(chuàng)建和發(fā)布一個(gè)內(nèi)容視圖
在 Foreman 中,“內(nèi)容視圖”是你的存儲(chǔ)庫(kù)在某個(gè)特定時(shí)間點(diǎn)的快照。內(nèi)容視圖提供了隔離軟件包版本到你想保留的狀態(tài)的機(jī)制。內(nèi)容視圖有很多可配置的功能,你可以用它來(lái)進(jìn)一步細(xì)化。為了本教程的目的,讓我們保持簡(jiǎn)單。
- 在 Foreman 網(wǎng)頁(yè)用戶(hù)界面中,導(dǎo)航到“內(nèi)容 > 內(nèi)容視圖”,并點(diǎn)擊“創(chuàng)建新視圖”。
- 在“名稱(chēng)”字段中,為視圖輸入一個(gè)名稱(chēng)。Foreman 會(huì)根據(jù)你輸入的名稱(chēng)自動(dòng)完成“標(biāo)簽”字段。
- 在“描述”字段中,輸入視圖的描述。
- 單擊“保存”以創(chuàng)建內(nèi)容視圖。
- 在新的內(nèi)容視圖中,點(diǎn)擊“Yum 內(nèi)容 > 添加存儲(chǔ)庫(kù)”,在“存儲(chǔ)庫(kù)選擇”區(qū)域,點(diǎn)擊“添加”。對(duì)于 BaseOS 和 Appstream 存儲(chǔ)庫(kù),選擇你想包括的軟件包,然后點(diǎn)擊“添加存儲(chǔ)庫(kù)”。
- 點(diǎn)擊“發(fā)布新版本”,在“描述”區(qū)域,輸入關(guān)于版本的信息以記錄變化。
- 單擊“保存”。
當(dāng)你點(diǎn)擊“發(fā)布新版本”時(shí),你創(chuàng)建了一個(gè)你已同步的所有內(nèi)容的快照。這意味著你訂閱此內(nèi)容視圖的每臺(tái)服務(wù)器將只能訪問(wèn)與此生命周期環(huán)境相關(guān)的內(nèi)容視圖中的軟件包版本。
每一個(gè)新的內(nèi)容視圖和后續(xù)版本都會(huì)首先發(fā)布到庫(kù)環(huán)境,然后你可以在那里推廣到其他環(huán)境。
跨生命周期環(huán)境推廣內(nèi)容
如果你已經(jīng)測(cè)試了新的軟件包,并且確信一切都很穩(wěn)定,你可以把你的內(nèi)容視圖推廣到另一個(gè)生命周期環(huán)境中。
- 導(dǎo)航到“內(nèi)容 > 內(nèi)容視圖”,選擇你想推廣的內(nèi)容視圖。
- 點(diǎn)擊內(nèi)容視圖的“版本”標(biāo)簽。
- 選擇你想推廣的版本,并在“操作”欄中,點(diǎn)擊“推廣”。
- 選擇你要推廣內(nèi)容視圖的環(huán)境,并點(diǎn)擊“推廣版本”。
- 再次點(diǎn)擊“推廣”按鈕。這次選擇生命周期環(huán)境,例如,“Test”,然后單擊“推廣版本”。
- 最后,再次點(diǎn)擊“推廣”按鈕。例如,選擇“Production”環(huán)境并點(diǎn)擊“推廣版本”。
被分配到該特定環(huán)境的服務(wù)器現(xiàn)在可以從一套更新的軟件包中提取。
創(chuàng)建一個(gè)激活密鑰
為了將 CentOS Stream 服務(wù)器注冊(cè)到你在特定生命周期中定義的內(nèi)容,你必須創(chuàng)建一個(gè)激活密鑰。激活密鑰是一種與服務(wù)器共享憑證的安全方法。這使用了一個(gè)叫做“訂閱管理器的工具來(lái)訂閱 CentOS Stream 服務(wù)器的內(nèi)容。
當(dāng)你創(chuàng)建了激活密鑰后,將 CentOS Stream 訂閱添加到激活密鑰中。
- 在 Foreman 網(wǎng)頁(yè)用戶(hù)界面中,導(dǎo)航到“內(nèi)容 > 激活密鑰”,并點(diǎn)擊“創(chuàng)建激活密鑰”。
- 在“名稱(chēng)”欄中,輸入激活密鑰的名稱(chēng)。
- 在“描述”欄中,輸入激活密鑰的描述。
- 從“環(huán)境”列表中,選擇要使用的環(huán)境。
- 從“內(nèi)容視圖”列表中,選擇你剛才創(chuàng)建的內(nèi)容視圖。
- 點(diǎn)擊“保存”。
從 Foreman 管理的內(nèi)容中創(chuàng)建一個(gè) CentOS Stream 主機(jī)
現(xiàn)在一切都準(zhǔn)備好了。隨著你創(chuàng)建的內(nèi)容包含在內(nèi)容視圖中,并在整個(gè)生命周期中推廣,你現(xiàn)在可以準(zhǔn)確地用你想使用的內(nèi)容來(lái)配置主機(jī),并訂閱你想讓它們接收的更新。
要在 Foreman 中創(chuàng)建一個(gè)主機(jī),請(qǐng)導(dǎo)航到“主機(jī) > 創(chuàng)建主機(jī)”。
- 在“名稱(chēng)”字段中,為主機(jī)輸入一個(gè)名稱(chēng)。
- 單擊“組織”和“位置”選項(xiàng)卡,以確保配置環(huán)境自動(dòng)設(shè)置為當(dāng)前環(huán)境。
- 從“部署在”列表中,選擇“裸金屬”。
- 單擊“操作系統(tǒng)”選項(xiàng)卡。
- 從“架構(gòu)”列表中,選擇“x86_64”。
- 從“操作系統(tǒng)”列表中,選擇“CentOS_Stream 8”。
- 勾選“構(gòu)建模式”框。
- 對(duì)于“媒體選擇”,選擇“同步的內(nèi)容”來(lái)使用你之前同步的 CentOS Stream 內(nèi)容。
- 從“同步的內(nèi)容”列表中,確保選擇 “CentOS Stream”。
- 從“分區(qū)表”列表中,對(duì)于這個(gè)演示,選擇默認(rèn)的 “Kickstart”,但有許多可用的選項(xiàng)。
- 在“Root 密碼”欄中,為你的新主機(jī)輸入一個(gè) root 密碼。
- 點(diǎn)擊“接口”標(biāo)簽,并點(diǎn)擊“編輯”,并添加一個(gè) “Mac 地址”。
- 點(diǎn)擊“參數(shù)”標(biāo)簽,并確保存在一個(gè)提供激活密鑰的參數(shù)。如果沒(méi)有,添加一個(gè)激活密鑰。
- 點(diǎn)擊“提交”以保存主機(jī)條目。
現(xiàn)在,新的主機(jī)處于構(gòu)建模式,這意味著當(dāng)你打開(kāi)它時(shí),它將開(kāi)始安裝操作系統(tǒng)。
如果你導(dǎo)航到“主機(jī) > 內(nèi)容主機(jī)”,你可以看到你的主機(jī)所訂閱的訂閱、生命周期環(huán)境和內(nèi)容視圖的全部細(xì)節(jié)。
這個(gè)例子只是對(duì)你在 Foreman 中管理和配置 CentOS Stream 內(nèi)容的眾多選項(xiàng)的一個(gè)小窺視。如果你想了解更多關(guān)于如何管理 CentOS Stream 版本,控制你的服務(wù)器可以訪問(wèn)的內(nèi)容,以及控制和保護(hù)你的基礎(chǔ)設(shè)施的穩(wěn)定性的詳細(xì)信息,請(qǐng)查看 Foreman 內(nèi)容管理 文檔。當(dāng)所有 CentOS Stream 內(nèi)容在你的控制之下時(shí),你可以創(chuàng)建和注冊(cè) Centos Stream,只使用你指定的內(nèi)容。有關(guān)配備的更多詳細(xì)信息,請(qǐng)參見(jiàn) Foreman 配備 文檔。如果你有任何問(wèn)題、反饋或建議,你可以在 https://community.theforeman.org/ 找到 Foreman 社區(qū)。