自訂 IBM Cloud 可部署架構以建立您自己的基礎架構

本教學教導您如何以現有的 IBM Cloud® 可部署架構為基礎,建立自訂的可部署架構,以滿足您的業務需求。 完成本教學後,您將學會如何下載 Terraform 檔案、更新變數,然後測試更新後的架構。

從 IBM Cloud 可部署的架構開始,您不需要擔心從頭開始建立基礎架構。 您可以使用 IBM Cloud 可部署架構並配置它以符合您的特定需求,以取得快速啟動。

想像您是 Example Corp (一間虛構公司)的雲端自動化工程專業人員。 您的基礎結構架構師瀏覽了 IBM Cloud 目錄,發現了 適用於 Code Engine 的雲端自動化,這是一個可部署的架構,符合您的大部分需求。 但是,您的基礎結構設計師需要您進行以下變更,以滿足您的業務需求:

  • 移除不需要的變數。
  • 將 IBM Cloud 區域限制為美國部署區域。
  • 更新可部署架構,以參考 Example Corp 的 AI 應用程式。

本指導教學使用虛構的實務範例來協助您學習及瞭解可部署架構的一些配置選項。 它解釋了如何自訂可部署的架構,以便在 IBM Cloud Code Engine 上自動部署容器化應用程式。 icr.io/codeengine/helloworld 的現有容器映像用作範例應用程式。 當您完成本教學時,請調整每個步驟以符合您組織的需求。

開始之前

  1. 要建立架構,您必須熟悉 Terraform

  2. 在 IBM Cloud 主控台中,移至 管理 > 帳戶 > 帳戶設定,以驗證您是否使用「隨收隨付制」或「訂閱」帳戶。

  3. 建立儲存庫以儲存您的可部署架構。 基於本指導教學的目的,會使用 GitHub。 如需相關資訊,請參閱 建立儲存庫

  4. 安裝您所選擇的編輯器,例如、Visual Studio Code.

  5. 驗證您已獲指派下列 IBM Cloud Identity and Access Management (IAM) 角色:

    • 所有 IAM 帳戶管理服務、所有帳戶管理服務,以及所有啟用身分與存取服務的管理員。
    • 編輯「目錄管理」服務。
    • Schematics 的 Manager 服務存取角色。
    • 您的可部署架構中特定資源所需的其他角色。 Code Engine 的雲端自動化需要 Writer 服務存取角色,該角色的權限涵蓋 Code Engine 服務的所有資源。

    如需詳細資訊,請前往 指派帳戶管理服務存取權限管理資源存取權限

下載可部署架構檔案

首先,您需要下載可部署架構檔案。 這些檔案包括一個 main.tf 檔案,用來調用根 Terraform 模組。

  1. 在 IBM Cloud 主控台中,按一下 型錄

  2. 在搜尋列中輸入 Cloud automation for Code Engine,然後從搜尋結果清單中選擇建築。

  3. 選擇 v4.2.2 作為產品版本。

    本教學是基於 4.2.2 版本的 Cloud automation for Code Engine 建立的。 但是,如果需要,您可以選擇其他版本的可部署架構。

  4. 確定已選取 New Code Engine apps 變異。

  5. 從摘要畫面中按一下 檢閱部署選項

  6. 選取 使用程式碼 > 下載組合,以下載組合。

  7. 在本端電腦上開啟下載的組合。

  8. 解壓縮 .tar.gz 綑綁包,以存取和編輯資料夾內的檔案。 將解壓縮後的資料夾重新命名為 Example-corp-infrastructure,以便尋找和使用。

    順利下載並解壓縮軟體組之後,您會看到下列檔案及資料夾:

    • automation folder
    • ibm_catalog.json
    • main.tf
    • outputs.tf
    • provider.tf
    • README.md
    • variables.tf
    • version.tf

編輯變數清單

當您的基礎結構設計師研究 IBM Cloud Code Engine 時,他們決定修改區域和 IBM Cloud API 金鑰。 架構中包含的其他變數對於您的目的來說並不需要,因此您需要使用您最喜愛的編輯器 Visual Studio Code 將其移除。

  1. 在 Visual Studio Code中,開啟 variables.tf 檔案。

  2. 將下列變數移至 variables.tf 檔案的開頭。

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region

    變數的順序並不重要。

  3. 刪除所有其他變數並儲存檔案。

更新 main.tf 檔案

現在您已更新 variables.tf 檔,請確定 main.tf 檔中的配置資訊是正確的。 由於您要使用 Code Engine 執行 Example Corp 所建立的應用程式,因此您需要提供應用程式的相關資訊。

  1. 開啟 main.tf 檔案。

  2. 更新 app_name 變數,並輸入 "example-corp-ai-app" 作為應用程式的名稱。

  3. 更新 image_reference 變數,並輸入 "icr.io/codeengine/helloworld",這是您應用程式的 docker 映像。

  4. 新增 project_name 變數,並輸入 "example-corp-ce-project" 作為 Code Engine 專案的名稱。

  5. 新增 provider_visibility 變數,並將其設定為 "public"

  6. 確認包含 ibmcloud_api_key, prefix,和 region 變數,如以下範例所示:

    module "deploy-arch-ibm-code-engine" {
      source      = "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/offering/source/archive//solutions/apps?archive=tgz&catalogID=7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3&flavor=apps&installType=fullstack&kind=terraform&name=deploy-arch-ibm-code-engine&version=v4.2.2"
      ibmcloud_api_key      = var.ibmcloud_api_key
      prefix      = var.prefix
      existing_resource_group_name      = var.existing_resource_group_name
      region      = var.region
      app_name      = "example-corp-ai-app"
      image_reference      = "icr.io/codeengine/helloworld"
      project_name      = "example-corp-ce-project"
      provider_visibility      = "public"
    }
    
  7. 儲存檔案。

現在您的架構已硬體編碼為參考您的 Example Corp AI 應用程式,並配置為使用變數 IBM Cloud API 金鑰、前綴和地區。

更新 ibm_catalog.json 檔案

ibm_catalog.json 檔案是一個艙單 JSON 檔案,當您將可部署架構載入私有目錄時,它會自動匯入版本資訊。 因為您變更了可部署的架構,所以您創造了一個全新的架構來滿足您的需求。 更新 ibm_catalog.json 檔案中的下列資訊,以反映您的變更。

如需資訊清單檔及其包含內容的相關資訊,請參閱 本端編輯型錄資訊清單

更新產品資訊

現在您更新了組態並建立了自己的架構,您也必須更新可部署架構的名稱和程式名稱。

  1. 開啟 ibm_catalog.json 檔案。

  2. 尋找 label 欄位,並將可部署架構的名稱更新為 Example Corp's infrastructure

  3. 尋找 name 欄位,並將架構的程式化名稱更新為 deploy-arch-example-corp

  4. 尋找 version 欄位,並輸入 0.0.1 以更新版本號碼。 如果缺少欄位,請在 name 欄位之後加入新的一行,例如:

    			"label": "Example Corp's infrastructure",
    			"name": "deploy-arch-example-corp",
    			"version": "0.0.1",
    
  5. flavors 區段中,找到 label 欄位,然後將此可部署架構變體的名稱更新為 Deploy Example Corp AI app on IBM Cloud Code Engine。 如此一來,您就可以辨識可部署架構的這個變異的目的,以及它要達成的目標。

  6. 儲存檔案。

更新配置資訊

現在,您要確保可部署架構的使用者只能在美國地區部署。 如果要這麼做,請在 ibm_catalog.json 檔的配置區段中更新變數資訊。

  1. ibm_catalog.json 檔案的 configuration 區段中,找到下列變數,並將它們移到設定區段的開頭:

    • ibmcloud_api_key
    • prefix
    • existing_resource_group_name
    • region
  2. 若要限制只有美國地區,您必須將每個地區新增為 region 變數的選項,刪除不需要的部分,並將 region 設為必填變數。

    {
        "key": "region",
        "type": "string",
        "default_value": "us-south",
        "description": "The region in which to provision all resources created by this solution.",
        "required": true,
        "options": [
            {
                "displayname": "us-east",
                "value": "us-east"
            },
            {
                "displayname": "us-south",
                "value": "us-south"
    
            }
        ],
        "virtual": false
    }
    
  3. 刪除配置區段中的其餘變數。

    當使用者部署您的架構時,他們可以在您列出的地區選項之間進行選擇。 如需可用地區的清單,請參閱 地區

  4. 儲存 ibm_catalog.json 檔案。

測試可部署架構

在您將配置好的可部署架構加入私有目錄並提供使用之前,請測試您的配置,以確保架構能如預期般執行。 若要使用 Terraform 指令行測試架構,請完成下列步驟:

  1. 從 IBM Cloud 建立或更新使用 Terraform 模組所需的 .netrc 檔案。 如需相關資訊,請參閱 ibmcloud catalog utility netrc

    ibmcloud catalog utility netrc
    
  2. 起始設定 Terraform CLI。 如需相關資訊,請參閱 起始設定工作目錄

    terraform init
    
  3. 佈建資源。 如需相關資訊,請參閱 使用 Terraform 佈建基礎架構

    1. 執行 terraform plan 以產生 Terraform 執行計劃來預覽提出的動作。

      terraform plan
      
    2. 執行 terraform apply,以建立計劃中定義的資源。

      terraform apply
      

下一步

如果您的可部署架構如預期般執行,您就成功從 Cloud automation for Code Engine 建立自己的可部署架構。 現在,您已準備好將更新的檔案移至您所建立的 GitHub 儲存庫,並 將產品上線至專用型錄

Example Corp's infrastructure 加入私人目錄後,您就可以 與企業分享。 如果您還沒有準備好分享您的可部署架構,或者您不是企業的一員,您可以跳過分享,繼續下一個教學,使用專案部署 Example Corp's infrastructure