建立可部署架構
在完成 規劃及設計架構 的步驟並 決定要建立的元件類型 之後,您可以開始建立自動化程式碼,以實現架構。 本主題引導您建立由模組組成的可部署架構。
要建立可部署的架構,您必須定義所需的文件,在GitHub,然後將其新增至私有目錄中,以便您可以與組織內部或外部的其他人共用。
您有幾個建立可部署架構的選項:
- 建立您自己的架構:使用以下說明,從頭開始建立您自己的可部署架構。
- 修改現有程式碼:從現有架構下載程式碼,修改程式碼以符合您的需求,然後根據您的變更建立新的可部署架構。
- 堆疊架構:如果目錄中已經提供了 可部署架構,那麼您也可以將這些架構堆疊在一個專案中。
瞭解可部署架構的結構
本文件所說明的可部署架構由一或多個模組組成。 可部署架構由來源儲存庫中的下列項目組成:
- Terraform 程式碼
- 您的來源儲存庫包括 Terraform 檔案。 這些檔案宣告想要的基礎架構 (最終狀態),並依賴執行實際 API 要求的 Terraform 提供者來建立、更新及刪除基礎架構。 部分最常用的提供者是 IBM Cloud® Terraform 提供者和 Helm/Kubernetes/Rest API 提供者。
- Script (選用)
- 用作可能不存在的函數 (Bash/Python) 或特定作業 (Ansible) 的停止間隙。 如需相關資訊,請參閱 建立可部署架構的 Script。
- 自動化測試
- 用來部署、驗證及毀損基礎架構的驗證測試。 如需範例,請參閱 sample-deployable-architectures 範例儲存庫中的
tests目錄。 - 文件
- 架構圖及 Readme 檔需要包含在您的來源儲存庫中。
- 型錄資訊清單檔
- 定義如何在 IBM Cloud 型錄中公開可部署架構。 除了名稱、描述和功能等通用目錄細節外,它還包含指向底層 Terraform 配置的變體定義、透過 驗證的合規性聲明(在將架構導入目錄時進行驗證 IBM Cloud® Security and Compliance Center Workload Protection ),以及執行可部署架構所需的必要 IAM 權限。 如需相關資訊,請參閱 本端編輯型錄資訊清單。
- 變異
- 可部署架構可以包括功能或複雜性的變異。 例如,您可以針對簡式低成本部署建立具有基本功能的快速入門變異,然後您可以具有標準變異,其具有將在正式作業中使用的更複雜架構。 其中每一個變異本身都是可部署的架構,它會上線並配置成一起出現在型錄中。 這些變異源自不同工作目錄中的相同儲存庫,並定義在
ibm_catalog.json檔案中。 如需詳細資訊,請參閱 建立變體。
指定相依性並擴充您的架構
如果您的可部署架構依賴於其他架構,您可以在將可部署架構加入目錄時,加入有關該依賴的資訊。 您也可以加入可選的架構,針對不同的使用個案擴充自己的架構。 結果是為使用者提供可客製化的解決方案,因為他們可以選擇想要包含哪些架構以及您的架構。 如需詳細資訊,請前往 在上線期間擴充可部署架構。
您也可以在您的可部署架構登錄之前,在目錄清單檔案中提供您想要與自己的架構一起包含的其他架構資訊。
使用目錄艙單檔案中的 dependencies 區段,可建立具有可選和必要架構的客製化解決方案。 確保 dependency_version_2 在目錄清單檔案中設定為 true。 仍然支援在目錄清單檔案中處理依賴關係的舊方法。 在 dependency_version_2 設定為 false 之後,您可以將 install_type 設定為 extension,並在 dependencies 部分提供有關相依性的資訊。 如果您這樣做,依賴清單中的每個架構都需要部署您自己的架構。 如需詳細資訊和設定這些值,請參閱 本地編輯目錄清單。
建立可部署架構
在建立可部署架構時,您可以預期完成下列高階作業:
- 建立程式碼儲存庫並新增程式碼。
- 建立
ibm_catalog.json資訊清單檔,以準備在型錄中建立磚。 - 建立發行。
- 檢閱並驗證您的程式碼,以在專用型錄中建立型錄磚。
- 選擇您要共用或發佈可部署架構的位置。
下列建立可部署架構的指示使用公用範例儲存庫來教導。
建立來源儲存庫
透過使用組織所定義的需求,建立 GitHub 儲存庫,您可以用來保留可部署架構的原始碼。 如需建立儲存庫的說明,請參閱 GitHub 說明文件。 如果您已有想要使用的儲存庫,則可以跳過此步驟。 您可以選擇使用其他組織來託管您的原始程式碼,例如GitLab,但就本文檔而言,GitHub用來。
建立必要的 Terraform 檔案
請檢閱下列各節,以瞭解 GitHub 來源儲存庫中需要哪些基本 Terraform 檔案,以建立在將可部署架構上線至專用型錄時所需的 .tgz 檔案。
main.tf
main.tf 檔案是您放置程式碼的位置,該程式碼會佈建您要建立的資源。 您可以直接從 terraform-ibm-modules 或外部模組或提供者資源呼叫模組。
請參閱範例:
outputs.tf
outputs.tf 檔案包含可部署架構中可包含的輸出值。
請參閱範例:
provider.tf
provider.tf 檔案包含提供者配置,例如程式碼預期的提供者名稱、API 金鑰及區域。
請參閱範例:
README.md
Readme 檔包含可部署架構的相關背景及用法資訊,包括需求、模組、資源、必要存取權、輸入及輸出區段。
如果您是 terraform-ibm-modules 組織中的來源儲存庫,則會產生大部分 Readme 檔。 因此,您不會手動新增輸入及輸出之類的資訊。 變數名稱與描述會從 檔案 variables.tf 中生成至讀我文件。
請參閱範例:
variables.tf
variables.tf 檔案包含可部署架構的必要及選用變數。
請參閱範例:
version.tf
version.tf 檔案儲存執行可部署架構所需的 Terraform 版本和提供者版本的相關資訊。
可部署架構的任何必要 Terraform 提供者都應該鎖定在確切版本中,而不是使用範圍來確保與可部署架構一致的結果。
請參閱範例:
建立目錄清單檔案
型錄資訊清單是儲存庫根目錄中稱為 ibm_catalog.json 的檔案。 此檔案定義了在目錄中建立瓦片所需的元資料,例如名稱、描述、功能、指向底層 Terraform 配置的變體定義、將於導入過程中透過 驗證的 Workload Protection 合規聲明,以及部署架構所需的必要 IAM 權限。 它也會定義當使用者嘗試從型錄部署架構時,依預設要選取的配置。 如需相關資訊,請參閱 將型錄詳細資料對映至資訊清單檔。
請參閱 來自範例儲存庫的範例,其中顯示 fullstack 及延伸類型變異。
您可以使用兩種不同的方法來建立型錄資訊清單檔:
-
您可以使用 範本 從頭開始建立此檔案。
-
您可以在來源儲存庫中使用下列基本範例來啟動上線程序,然後在主控台中進行上線期間進行變更之後 下載資訊清單檔,以將更新的檔案新增至來源儲存庫。
下列是您可以新增至儲存庫並編輯以協助您開始使用此選項的基本資訊清單檔。
{ "products": [ { "flavors": [ { "architecture": {}, "compliance": {}, "install_type": "fullstack" } ], "label": "catalog-create-sample-da-0.0.1", "name": "catalog-create-sample-da-0.0.1", "offering_icon_url": "url", "product_kind": "solution", "provider_name": "Community", "short_description": "A simple deployable architecture.", "tags": [ "dev_ops" ], "version": "0.0.1" } ] }
後續步驟: 將可部署架構上線至專用型錄
建立 Git 版本以在來源儲存庫中包含必要檔案之後,您可以將可部署架構的版本及所有包含的變異上線。 上線是在專用型錄中建立型錄磚的程序,方法是檢閱型錄詳細資料並驗證 IBM Cloud中的測試部署及相符性要求。 如需逐步處理程序,請參閱 上線可部署架構。