用開源工具 Pulp 管理你的軟體倉庫
Foreman 是一個強大的管理和自動化產品,它為 Linux 環境的管理員提供了企業級的解決方案,它適用於四個關鍵場景:供應管理、配置管理、補丁管理和內容管理。Foreman 中內容管理功能的一個主要組成部分是由 Pulp 項目提供的。雖然 Pulp 是這個產品的一個組成部分,但它也是一個獨立的、自由開源的項目,自身也在取得巨大的進步。
讓我們來看看 Pulp 項目,特別是最新版本 Pulp 3 的功能。
什麼是 Pulp?
Pulp 是一個管理軟體包倉庫,並將其提供給大量的消費者的平台。你可以使用 Pulp 在不同環境中鏡像、同步、上傳和推廣各種內容,如 RPM、Python 包、Ansible 集合、容器鏡像等。如果你有幾十個、幾百個甚至上千個軟體包,並需要更好的方式來管理它們,Pulp 可以幫助你。
最新的主要版本是 Pulp 3,它於 2019 年 12 月發布。Pulp 3 是多年來收集用戶需求的結晶,並對現有的 Pulp 架構進行了全面的技術改造,以提高可靠性和靈活性。另外,它還包含了大量的新功能。
誰在使用 Pulp?
大多數情況下,在 Pulp 用戶管理的企業軟體環境中,內容的穩定性和可靠性是最重要的。Pulp 用戶希望有一個平台來開發內容,而不用擔心倉庫可能會消失。他們希望以安全的方式在其生命周期環境的不同階段推廣內容,優化磁碟空間並擴展環境以滿足新的需求。他們還需要靈活處理各種內容類型。Pulp 3 提供了這些以及更多功能。
在一處管理各類內容
安裝 Pulp 後,你可以為你計劃管理的內容類型添加內容插件,將內容鏡像到本地,添加私人託管的內容,並根據你的需求混合內容。例如,如果你是 Ansible 用戶,而你又不想在 Ansible Galaxy 上託管你的私有內容,你可以添加 Pulp Ansible 插件,鏡像你所需要的公共 Ansible 內容,並將 Pulp 作為一個內部平台,在你的組織中管理和分發可擴展的公共和私有 Ansible 角色和集合的混合。你可以用任何內容類型執行此操作。有各種各樣的內容插件可供選擇,包括 RPM、Debian、Python、容器和 Ansible 等等。還有一個文件插件,你可以用它來管理 ISO 鏡像等文件。
如果你沒有找到你所需的內容類型插件,Pulp 3 引入了新的插件 API 和插件模板,你可以輕鬆創建一個屬於自己的 Pulp 插件。你可以根據插件編寫指南自動生成一個最小可用的插件,然後從那裡開始構建。
高可用性
在 Pulp 3 中,從 MongoDB 到 PostgreSQL 的轉變促進了性能和數據完整性的重大改進。Pulp 用戶現在有了一個完全開源的技術棧,它可以提供高可用性(HA)和更好的擴展性。
倉庫版本管理
使用 Pulp 3,你可以毫無風險地進行試驗。每次你添加或刪除內容時,Pulp 都會創建一個不可變的倉庫版本,這樣你就可以回滾到早期的版本,從而保證操作的安全性和穩定性。通過使用發布和分發,你可以公開一個倉庫的多個版本,你可以將其作為回滾到早期版本的另一種方法。如要回滾,你可以簡單地將你的分髮指向一個舊的發布。
磁碟優化
任何軟體開發環境的主要挑戰之一是磁碟優化。如果你不斷地下載包,例如,你今天需要但明天不再需要的倉庫每日構建,那麼磁碟空間將很快成為一個問題。Pulp 3 的設計已經考慮到了磁碟優化。當默認下載並保存所有的軟體包,你也可以啟用「按需」或「流式」選項。「按需」選項只下載和保存客戶要求的內容,從而節省了磁碟空間。使用「流式」選項,它也會根據客戶的要求進行下載,但它不會將內容保存在 Pulp 中。這對於同步內容是非常理想的,例如,從一個每日倉庫同步,並讓你在後期免於執行磁碟清理。
多種存儲選項
即使進行了最好的磁碟優化,隨著項目的發展,你可能需要一種方法來擴展你的部署以滿足需求。除了本地文件存儲,Pulp 還支持一系列的雲存儲選項,如 Amazon S3 和 Azure,以確保你可以擴展滿足你的部署需求。
保護你的內容
Pulp 3 可以選擇添加 Certguard 插件,該插件提供了一個支持 X.509 的 ContentGuard,它要求客戶在收到 Pulp 的內容之前提交證明其對內容的權利的證書。
只要客戶端的證書沒有過期,且由證書頒發機構簽署,並在創建時存儲在 Certguard 上,任何客戶端在請求時提供基於 X.509 或基於 Red Hat 訂閱管理證書都將獲得授權。客戶端使用安全傳輸層(TLS)提供證書,這證明客戶端不僅有證書,還有它的密鑰。你可以放心地開發,知道你的內容正在受到保護。
Pulp 團隊也在積極為整個 Pulp 部署一個基於角色的訪問控制系統,這樣管理員就可以確保正確的用戶可以訪問正確的環境。
在容器中試用 Pulp
如果你有興趣親自評估 Pulp 3,你可以使用 Docker 或 Podman 輕鬆在容器中安裝 Pulp 3。Pulp 團隊一直在努力簡化安裝過程。你也可以使用 Ansible 劇本 來自動完成 Pulp 3 的全部安裝和配置。
via: https://opensource.com/article/20/8/manage-repositories-pulp
作者:Melanie Corr 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive