建立實例範本

您可以建立實例範本,用以定義實例的詳細資訊,從而配置一個或多個虛擬伺服器。 建立實例範本時,您可以使用它來佈建單一虛擬伺服器實例,也可以同時佈建多個實例作為實例群組的一部分。

使用使用者介面建立實例範本

實例範本定義從範本建立之虛擬伺服器實例的詳細資料。 例如,指定映像檔範本的設定檔 (vCPU 及記憶體)、映像檔、已連接磁區及網路介面。

要建立實例範本,請完成以下步驟。

  1. IBM Cloud控制台中,點選導航選單圖示選單圖示> 基礎架構VPC 圖示> 計算 > 實例範本
  2. 點選「新實例範本」,並輸入表 1 中的資訊。
  3. 當資訊完成時,按一下 建立實例範本

當您建立實例範本時,會執行驗證步驟,以確保您可以使用範本來佈建虛擬伺服器實例。

實例模板選擇
欄位
位置 位置是由地區(特定地理區域)及區域(地區內的容錯資料中心)所組成。 請選擇您要建立虛擬伺服器執行個體的地理位置、區域及區域。
名稱 虛擬伺服器實例需要名稱。
資源群組 為實例選取資源群組。
影像

按一下 變更影像 以選取影像。 在「選取映像檔」頁面上,您可以選取庫存映像檔、自訂映像檔、型錄映像檔、Snapshot 或現有磁區。 如果您配置实例的地理位置支持,您可以选择以下之一:

  • x86 architecture

  • Deprecated s390x architecture

選擇映像後,按一下儲存

  • 庫存圖片:您可以選擇可用的庫存圖片。 如需詳細資訊,請參閱:

  • x86 虛擬伺服器影像

  • 已廢棄 s390x 虛擬伺服器影像

  • 自訂影像 :自訂影像可以是您自訂並上傳至 IBM Cloud Object Storage 的影像,然後您可以將其匯入 IBM Cloud VPC。 您也可以使用從開機磁區建立的自訂映像檔。 有關自訂影像的詳細資訊,請參閱自訂影像入門

  • 目錄影像:目錄影像是匯入私人目錄的自訂影像。 如需更多關於目錄影像的資訊,請參閱在私有目錄中使用自訂影像時的 VPC 考慮因素

  • 快照:您可以從可用的快照中選取。 如需詳細資訊,請參閱有關 Block Storage Snapshots for VPC

  • 現有磁碟區:您可以從現有的磁碟區中選擇。 指定的磁碟區必須處於未掛載狀態,且其作業系統的架構必須與實例設定檔相同。
    s390x 架構已不再推薦使用。 您可以遷移至內部部署模式。 如需詳細資訊,請參閱 Linux on IBM Z and LinuxONE. 有關廢棄的詳細資訊,請參閱 服務廢棄公告

設定檔 按一下變更設定檔,從所有可用的 vCPU 和 RAM 組合中選取。 效能配置檔類別包括「平衡型」、「運算型」、「記憶體型」、「超大記憶體型」、「極大記憶體型」、「儲存優化型」、「GPU 型」、「彈性型」、「機密運算型」及「高頻率型」。

請確認您所使用的配置檔,在您計劃建立執行個體的區域中是否可用。

如需相關資訊,請參閱設定檔

某些設定檔可能無法使用,因為虛擬伺服器的網路介面數量超過了設定檔的限制。 您可以移除網路介面,從更多設定檔中進行選擇。 如需更多資訊,請參閱「調整虛擬伺服器大小」。

某些樣式檔可能無法使用,因為所選圖片包含的「允許使用」條款與該樣式檔不相容。 在這種情況下,請選擇具有與想要的設定檔相容的允許使用表達的影像。 如需詳細資訊,請參閱 在自訂影像中加入允許使用的表達式

每核心的執行緒數 「每核心執行緒數」功能讓您能靈活地優化工作負載。 雖然所有設定檔都會顯示「每核心執行緒數」,但您僅能針對「高頻率」設定檔系列進行編輯。 對於「高頻率」設定檔,預設值為 2,但可調整為 1。
SSH 金鑰 您必須選取現有的公用 SSH 金鑰,或按一下 建立 SSH 金鑰 以建立新的 SSH 金鑰。 您只能建立 RSA SSH 金鑰。 為了ED25519 SSH金鑰,您必須上傳金鑰資訊。 如需建立 SSH 金鑰的相關資訊,請參閱 使用使用者介面建立 SSH 金鑰。 SSH 金鑰用來在實例執行之後安全地連接至實例。

注意:** 字母與數字的組合長度上限為 100 個字元。 SSH 金鑰可以是 RSA 或 Ed25519。 只有在作業系統支援此金鑰類型時,才能使用 Ed25519。 Ed25519 無法與 Windows 或 VMware 映像檔搭配使用。

如需更多資訊,請參閱《 SSH 金鑰入門指南 》。

開機磁區 所有設定檔的預設開機磁區大小都是 100 GB。 您可以指定較大的開機磁碟區容量,使用第一代磁碟區設定檔時最高可達 250 GB,使用 sdp 設定檔時最高可達 32,000 GB,視影像的需求而定。 您也可以指定使用者標籤。
資料磁區 您可以在佈建實例時,新增一個以上要包含的次要資料磁區。 若要新增磁區,請按一下 建立。 您可以指定磁區的客戶管理加密及使用者標籤。
虛擬專用雲端 指定要在其中建立實例的 IBM Cloud VPC。 您可以使用現有的 VPC,也可以建立新的 VPC。 若要建立新的 VPC,請按一下「新增 VPC」。
網路介面 定義IBM Cloud VPC的網路連線。 依預設,會為您的實例範本選取新選項 具有虛擬網路介面的網路連接。 或者,您可以選取舊式選項 實例網路介面。 無論您在佈建虛擬伺服器時選取哪種類型的網路介面選項,都會在虛擬伺服器的生命週期中持續保存。 選擇網路介面類型後,您可以按一下編輯圖示編輯圖示 以更新網路介面的詳細信息,例如子網路或關聯的安全性群組。
使用者資料 您可以新增使用者資料,以自動執行一般配置作業或執行 Script。 如需相關資訊,請參閱使用者資料
Meta 資料 預設情況下停用,允許從此範本建立的實例收集有關其自身的元資料。 點擊開關以開啟元資料服務。 如需詳細資訊,請參閱 About Metadata for VPC
新增至專用主機 您可以將虛擬伺服器執行個體新增至專用主機,從而在單一租用戶空間中建立執行個體。 若要佈建專用實例,您必須具有專用主機可用或 建立專用主機
新增至放置群組 您可以為該執行個體選取一個配置群組。 若要啟用放置群組,請按一下切換。 然後,選取或建立實例的放置群組。 如果您新增放置群組,則會根據放置群組策略放置實例。 如需相關資訊,請參閱 關於放置群組
動態音量頻寬分配 按一下切換以啟用附加資料磁碟區的 Pooled Volume bandwidth allocation。 此功能支援特定的 計算設定檔
主機故障自動重新啟動 依預設會啟用這個設定。 若要停用主機失敗自動重新啟動,請按一下切換。 如需相關資訊,請參閱 主機失敗回復原則

使用 CLI 建立實例範本

實例範本定義從範本建立之虛擬伺服器實例的詳細資料。 例如,指定實例範本的設定檔 (vCPU 及記憶體)、映像檔、已連接磁區及網路介面。 您可以使用指令行介面 (CLI) 在 IBM Cloud VPC 中建立一個以上實例範本。

如需使用從專用型錄共用的自訂映像檔來建立虛擬伺服器實例的相關資訊,請參閱 從專用型錄映像檔佈建

開始之前

請確定您已設定 IBM Cloud® CLI 環境IBM Cloud VPC

收集資訊以建立實例範本

準備好建立實例範本了嗎? 在您可以運行之前 ibmcloud is instance-template-create 命令時,您必須收集實例模板和命令選項所需包含的詳細資訊。 例如,您需要VPC的ID或名稱,以及要建立實例範本的可用區的名稱。 您還需要要使用的實例設定檔的名稱,以及要在其中建立範本的子網路的 ID 或名稱。

收集下列必要的實例範本詳細資料。

所需的實例模板詳細信息
實例範本詳細資料 列出指令 VPC CLI 參考文件
VPC ibmcloud is vpcs 列出所有 VPC
區域 ibmcloud is zones 列出地區中的所有區域
設定檔 ibmcloud is instances 列出所有虛擬伺服器實例
子網路 ibmcloud is subnets 列出所有子網路
影像 ibmcloud is image 列出所有映像檔
金鑰 ibmcloud is keys 列出所有金鑰
放置群組 ibmcloud is placement-groups 列出所有放置群組

確認您要使用的設定檔在您計劃建立實體的區域中可用。

使用以下指令來確定建立實例範本所需的資訊。

  1. 請列出與您的帳戶相關聯的地區。

    ibmcloud is regions
    

    請參閱下列範例。

    $ ibmcloud is regions
    Listing regions under account Test Account as user test.user@ibm.com...
    Name       Endpoint                              Status
    au-syd     https://au-syd.iaas.cloud.ibm.com     available
    br-sao     https://br-sao.iaas.cloud.ibm.com     available
    ca-tor     https://ca-tor.iaas.cloud.ibm.com     available
    eu-de      https://eu-de.iaas.cloud.ibm.com      available
    eu-es      https://eu-es.iaas.cloud.ibm.com      available
    eu-gb      https://eu-gb.iaas.cloud.ibm.com      available
    jp-osa     https://jp-osa.iaas.cloud.ibm.com     available
    jp-tok     https://jp-tok.iaas.cloud.ibm.com     available
    us-east    https://us-east.iaas.cloud.ibm.com    available
    us-south   https://us-south.iaas.cloud.ibm.com   available
    
  2. 切換至目標地區。

    ibmcloud target -r <region-name>
    
  3. 列出與目標地區相關聯的區域。

    ibmcloud is zones
    

    在以下範例中,該指令於 區域 us-south 執行,輸出結果將顯示該區域內可用的區域。

    $ ibmcloud is zones
    Listing zones in target region us-south under account Test Account as user test.user@ibm.com...
    Name         Region     Status
    us-south-1   us-south   available
    us-south-2   us-south   available
    us-south-3   us-south   available
    
  4. 列出與您帳戶相關聯的 IBM Cloud VPC。

    ibmcloud is vpcs
    

    在此範例中,您會看到與以下輸出內容類似的回應。

    ID                                          Name                         Status      Classic access   Default network ACL                   Default security group                 Resource group
    r006-0d37163a-701d-4ad6-9ece-a3e34cf28935   cdl                          available   false            acl-test-1                            pedicure-budding-providing-excluded    Default
    r006-212def4b-93f0-4b9a-a331-94178b99d474   cli-test-1                   available   false            surprise-pacifier-cubicle-demystify   foyer-alongside-rug-zen                Default
    

    若您目前沒有可用的資料庫,可以使用 ibmcloud is vpc-create 指令建立一個名為 IBM Cloud VPC 的資料庫。 如需建立 IBM Cloud VPC 的相關資訊,請參閱 IBM Cloud VPC CLI 參考資料

  5. 列出可用於建立您的實例範本的設定檔。

    ibmcloud is instance-profiles
    

    該指令的輸出結果類似於以下範例。

    Name               vCPU Manufacturer   Architecture   Family              vCPUs   Memory(GiB)   Bandwidth(Mbps)   Volume bandwidth(Mbps)   GPUs   Storage(GB)
    bx2-2x8            intel               amd64          balanced            2       8             4000              1000                     -      -
    bx2d-2x8           intel               amd64          balanced            2       8             4000              1000                     -      1x75
    bx2-4x16           intel               amd64          balanced            4       16            8000              2000                     -      -
    bx2d-4x16          intel               amd64          balanced            4       16            8000              2000                     -     1x150
    bx2-8x32           intel               amd64          balanced            8       32            16000             4000                     -      -
    bx2d-8x32          intel               amd64          balanced            8       32            16000             4000                     -     1x300
    bx2-16x64          intel               amd64          balanced            16      64            32000             8000                     -      -
    bx2d-16x64         intel               amd64          balanced            16      64            32000             8000                     -      1x600
    
  6. 列出與 IBM Cloud VPC 相關聯的子網路。

    ibmcloud is subnets
    

    該指令的輸出結果類似於以下範例。

    ID                                          Name                       Status      Subnet CIDR       Addresses   ACL                                   Public Gateway   VPC                     Zone         Resource group
    0717-cd4f74f1-bfae-423a-886b-9163256ec4a9   subnet-south-1             available   10.240.0.0/24     124/256     acl-test-1                            -                cdl                     us-south-1   Default
    0727-9447a2c3-efb8-44d2-a180-115531e0b0d3   cdl                        available   10.240.64.0/24    238/256     acl-test-1                            -                cdl                     us-south-2   Default
    

    若要取得實例群組的最佳效能,請確保使用子網路大小為 32 或以上。

    若您沒有可用的子網,可以使用 ibmcloud is subnet-create 指令來建立一個。 如需有關建立子網的更多資訊,請參閱 IBM Cloud VPC CLI 參考 手冊。

  7. 列出可用於建立您的實例範本的映像檔。

    ibmcloud is images
    

    該指令的輸出結果類似於以下範例。

    ID                                          Name                                                Status       Arch    OS name                              OS version                                               File size(GB)   Visibility   Encryption   Resource group   Catalog Offering User Data Format   Remote Account ID
    r006-3fa3bea4-7f9c-4eeb-8248-ab1f6e03185b   my-test-image                                       available    amd64   centos-7-amd64                       7.x - Minimal Install                                    1               private      none         Default          -                cloud_init
    r006-c55167af-ea8c-4c27-871f-ccc9c868753e   ibm-centos-stream-8-amd64-1                         available    amd64   centos-stream-8-amd64                8                                          2               public       none         Default          -                cloud_init       811f8abfbd32425597dc7ba40da98fa6
    
  8. 列出可以與實例相關聯的可用 SSH 金鑰。

    ibmcloud is keys
    

    該指令的輸出結果類似於以下範例。

    ID                                          Name     Type   Length   FingerPrint          Resource group
    r006-89ec781c-9630-4f76-b9c4-a7d204828d61   my-key   rsa    4096     gtnf+pdX2PYI9Ofq..   Default
    

    如果您目前沒有 SSH 金鑰,可以使用 ibmcloud is key-create 指令來建立一個 SSH 金鑰。

    RSA 和 ED25519 是您可使用的兩種 SSH 金鑰類型。 然而,您無法在 Windows 或 VMware 映像檔中使用 SSH ED25519 金鑰類型。 您只能對這些映像檔使用 RSA SSH 金鑰。 如需相關資訊,請參閱 開始使用 SSH 金鑰

  9. 列出所有可與您的執行個體關聯的配置群組。

    ibmcloud is placement-groups
    

    該指令的輸出結果類似於以下範例。

    Listing placement groups for generation 2 compute in all resource groups and region us-east under account vpcdemo as user    yaohaif@cn.ibm.com...
    ID                                            Name                             State    Strategy       Resource Group
    c5f1f366-b92a-4080-991a-aa5c2e33d96b          placement-group-region-us-east   stable   power_spread       5018a8564e8120570150b0764d39ebcc
    placement-group-cccc-cccc-cccc-cccccccccccc   vsi-placementGroup1              stable   host_spread    5018a8564e8120570150b0764d39ebcc
    placement-group-bbbb-bbbb-bbbb-bbbbbbbbbbbb   vsi-placementGroup2              stable   power_spread     5018a8564e8120570150b0764d39ebcc
    placement-group-aaaa-aaaa-aaaa-aaaaaaaaaaaa   vsi-placementGroup3              stable   power_spread   1d18e482b282409e80eff354c919c6a2
    

從 CLI 建立實例模板

在掌握這些數值後,請使用它們來執行 instance-template-create 指令。 您也必須指定實例的名稱。

ibmcloud is instance-template-create INSTANCE_TEMPLATE_NAME VPC ZONE_NAME PROFILE_NAME SUBNET --image IMAGE

以下範例指令會在 ID 指定的 VPC 中建立一個名為 my-instance-template 的實例範本。r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b. 範本在 us-south-3 區域,並使用 bx2-2x8 設定檔。 SUBNET 由其 ID 定義 0726-298acd6c-e71e-4204-a04f-fe4a4dd89805. IMAGE 由其 ID 指定 r006-534ef2ac-6158-45b3-9657-57629fa85305.

ibmcloud is instance-template-create my-instance-template r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b us-south-3 bx2-2x8 0076-2249dabc-8c71-4a54-bxy7-953701ca3999 --image r006-534ef2ac-6158-45b3-9657-57629fa85305 --placement-group r006-953db18c-068c-4a11-9b07-645684b444b2
Creating instance template my-instance-template under account Test Account as user test-user@ibm.com...

ID                          0727-0fdac0fb-ad59-4d7b-9f03-604ddc1db002
Name                        my-instance-template
CRN                         crn:v1:bluemix:public:is:us-south-2:a/a1234567::instance-template:0727-0fdac0fb-ad59-4d7b-9f03-604ddc1db002
Resource group              Default
Image                       r006-3fa3bea4-7f9c-4eeb-8248-ab1f6e03185b
VPC                         r006-212def4b-93f0-4b9a-a331-94178b99d474
Zone                        us-south-2
Profile                     bx2-2x8
Boot volume                 Name   Capacity   Profile           IOPS   Attachment name                      Auto delete   Tags
                            -      100        general-purpose   0      illude-education-spotted-reanalyze   true          -

Primary Network Interface   Name      Subnet ID                                   Security Groups                             Allow source IP spoofing   Reserved IP Address   Reserved IP ID   Reserved IP Name   Reserved IP Auto Delete
                            primary   0727-944126da-e46d-4104-8ba4-ab5a5832864b   r006-2295f00e-8af0-4736-be11-94677955b6b2   false                      -                     -                -                  -

Placement                   ID
                            r006-9994e3ab-18ae-49a7-95cf-25c77e09fa76

Created                     2023-03-29T22:02:59+05:30

下面的示例创建了一个实例模板,其名称为 my-gen3-instance-template 的實例範本。r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b. 範本在 us-south-3_ ZONE 中建立,並使用 cx3d-8x20 PROFILE. SUBNET 由其 ID 定義 00726-298acd6c-e71e-4204-a04f-fe4a4dd89805. IMAGE 由其 ID 指定 r006-534ef2ac-6158-45b3-9657-57629fa85305. 當所選的 運算設定檔 支援資料卷的共用頻寬分配時,您亦可包含 --storage_qos_modes 此選項。

ibmcloud is instance-template-create my-gen3-instance-template r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b us-south-3 cx3d-8x20 00726-298acd6c-e71e-4204-a04f-fe4a4dd89805 --image r006-534ef2ac-6158-45b3-9657-57629fa85305 --storage_qos_modes pooled

如需 ibmcloud is instance-template-create 指令的其他範例,請參閱 VPC CLI 參考資料

當您建立實例範本時,會執行驗證步驟,以確保您可以使用範本來佈建虛擬伺服器實例。 需要更多協助嗎? 您可以執行 命令 ibmcloud is help instance-template-create 來顯示說明。

使用 API 建立實例範本

實例範本定義從範本建立之虛擬伺服器實例的詳細資料。 例如,指定實例範本的設定檔 (vCPU 及記憶體)、映像檔、已連接磁區及網路介面。 您可以在您的應用程式中建立一個或多個實例模板IBM Cloud VPC透過使用應用程式介面 (API)。

如需使用從專用型錄共用的自訂映像檔來建立虛擬伺服器實例的相關資訊,請參閱 從專用型錄映像檔佈建

開始之前

定義 IAM 記號、API 端點和 API 版本的變數。 如需指示,請參閱設定 API 和 CLI 環境

請確認您具備所需的存取權限。 若要呼叫這些方法,您必須獲指派一個以上包含下列動作的 IAM 存取角色,視任何列出的條件而定。 您可以移至 Cloud Identity and Access Management 儀表板使用者 頁面來檢查您的存取權。

若要進一步瞭解 API,一個好辦法是在 IBM Cloud 主控台中的佈建頁面上按一下取得範例 API 呼叫。 您可以檢視正確的 API 要求序列,並更充分地瞭解動作及其相依關係。

收集資訊以建立實例範本

準備好建立實例範本了嗎? 在您可以製作之前 POST 請求與 /instance/templates 方法,您需要知道要包含在實例模板中的詳細資訊。 例如,您需要虛擬私有雲(VPC)的識別碼或名稱,以及您要建立執行個體的區域名稱。 您還需要指定要使用的實例配置檔名稱,以及欲建立範本之子網域的識別碼或名稱。 進行下列 API 呼叫,以收集下列必要的實例範本詳細資料:

所需的 API 範例模板詳細資訊
實例詳細資料 掛牌方式 API 規格文件
VPC GET /vpcs 列出所有 VPC
區域 GET /regions/<region>/zones 列出地區中的所有區域
設定檔 GET /instance/profiles 列出所有實例設定檔
子網路 GET /subnets 列出所有子網路
影像 GET /images 列出所有映像檔
索引鍵 GET /keys 列出所有金鑰
放置群組 GET /placement_groups 列出所有放置群組

確認您要使用的設定檔在您計劃建立實體的區域中可用。

使用以下指令來確定建立實例範本所需的資訊。

  1. 列出與您帳戶相關聯的 IBM Cloud VPC。

    curl -X GET "$vpc_api_endpoint/v1/vpcs?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

    如果沒有可用的範本,您可以使用 POST /vpcs 方法來建立 IBM Cloud VPC。 如需建立 IBM Cloud VPC的相關資訊,請參閱 IBM Cloud API 文件-建立 VPC

  2. 請列出與您的帳戶相關聯的地區。

    curl -X GET "$vpc_api_endpoint/v1/regions?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  3. 請列出與該區域相關聯的區域。

    curl -X GET "$vpc_api_endpoint/v1/regions/$region_name/zones?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  4. 列出可用於建立您的執行個體範本的設定檔。

    curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  5. 列出與 IBM Cloud VPC 相關聯的子網路。

    curl -X GET "$vpc_api_endpoint/v1/subnets?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

    若要取得實例群組的最佳效能,請確保使用子網路大小為 32 或以上。

    如果您沒有可用的子網路,則可以使用 POST /subnets 方法來建立子網路。 如需建立 IBM Cloud VPC的相關資訊,請參閱 IBM Cloud API 文件-建立子網路

  6. 列出可用於建立您的執行個體範本的影像。

    curl -X GET "$vpc_api_endpoint/v1/images?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    
  7. 列出可以與實例相關聯的可用 SSH 金鑰。

    curl -X GET "$vpc_api_endpoint/v1/keys?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

    如果您目前沒有 SSH 金鑰,可以使用 ibmcloud is key-create 指令來建立一個 SSH 金鑰。

    如果沒有可用的 SSH 金鑰,您可以使用 POST /keys 方法來建立 SSH 金鑰。 如需建立 IBM Cloud VPC的相關資訊,請參閱 IBM Cloud API 文件-建立金鑰

    RSA 和 ED25519 是您可使用的兩種 SSH 金鑰類型。 然而,您無法在 Windows 或 VMware 映像檔中使用 SSH ED25519 金鑰類型。 您只能對這些映像檔使用 RSA SSH 金鑰。 如需相關資訊,請參閱 開始使用 SSH 金鑰

  8. 列出所有可與您的執行個體關聯的配置群組。

    curl -X GET "$vpc_api_endpoint/v1/placement_groups?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token"
    

使用 API 建立實例範本

了解這些值後,請使用它們來製作 POST 請求與 /instance/templates 方法。 您也必須指定實例的名稱。

下面的示例创建了一个实例模板,命名为 my-instance-template,并在 us-south-1 並使用 bx2-2x8 設定檔。

curl -X POST "$vpc_api_endpoint/v1/instance/templates?version=2023-07-13&generation=2"
  -H "Authorization: Bearer $iam_token"
  -d '{
    "zone": {"name": "us-south-1"},
    "resource_group": {"id": "db8e8d865a83e0aae03f25a492c5b39e"},
    "name": "my-instance-template",
    "vpc": {"id": "r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b"},
    "user_data": "",
    "profile": {"name": "bx2-2x8"},
    "keys": [{"id": "r006-68f8333a-1169-42da-ba01-75268bac8362"}],
    "volume_attachments": [],
    "boot_volume_attachment": {
      "volume": {
        "name": "my-instance-template-boot-1720804230000",
        "capacity": 100,
        "profile": {"name": "general-purpose"}},
      "delete_volume_on_instance_delete": true
    },
    "metadata_service": {
      "enabled": true,
      "protocol": "https",
      "response_hop_limit": 1},
    "primary_network_attachment": {
      "name": "eth0",
      "virtual_network_interface": {
        "allow_ip_spoofing": false,
        "auto_delete": true,
        "enable_infrastructure_nat": true,
        "primary_ip": {"auto_delete": true,
        "subnet": {"id": "0726-298acd6c-e71e-4204-a04f-fe4a4dd89805"},
        "security_groups": [{"id": "r006-ccdd1f58-f0f2-4ea0-8774-a24bbe61b5d9"}],
        "protocol_state_filtering_mode": "auto"}
    },
    "network_attachments": [],
    "image": {"id": "r006-534ef2ac-6158-45b3-9657-57629fa85305"}}`

以下範例建立了一個實例範本,其名稱為 my-gen3-instance-templateus-south-3 並使用 cx3d-8x20 設定檔。 當所選的 運算設定檔 支援資料卷的匯集頻寬分配時,也可以包含 --storage_qos_modes 這個屬性。

curl -X POST "$vpc_api_endpoint/v1/instance/templates?version=2024-07-12&generation=2"
  -H "Authorization: Bearer $iam_token"
  -H "Content-Type: application/json" \
  -H "accept: application/json" \
  -d '{
  "zone": {"name": "us-south-3"},
  "resource_group": {"id": "db8e8d865a83e0aae03f25a492c5b39e"},
  "name": "my-gen3-instance-template",
  "vpc": {"id": "r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b"},
  "user_data": "",
  "profile": {"name": "cx3d-8x20"},
  "keys": [{"id": "r006-68f8333a-1169-42da-ba01-75268bac8362"},
  "volume_attachments": [
    {"volume": {
        "name": "my-data-volume-1",
        "capacity": 3000,
        "profile": {"name": "5iops-tier"}},
      "delete_volume_on_instance_delete": false},
    {"volume": {
        "name": "my-data-volume-2",
        "capacity": 3000,
        "profile": {"name": "5iops-tier"}},
      "delete_volume_on_instance_delete": false},
    {"volume": {
        "name": "my-data-volume-3",
        "capacity": 3000,
        "profile": {"name": "5iops-tier"}},
      "delete_volume_on_instance_delete": false}
  ],
  "boot_volume_attachment": {
    "volume": {
      "name": "my-gen3-instance-template-boot-1720803726000",
      "capacity": 100,
      "profile": {"name": "general-purpose"}
    },
    "delete_volume_on_instance_delete": true
  },
  "metadata_service": {
    "enabled": false,
    "response_hop_limit": 1},
  "primary_network_attachment": {
    "name": "eth0",
    "virtual_network_interface": {
      "allow_ip_spoofing": false,
      "auto_delete": true,
      "enable_infrastructure_nat": true,
      "primary_ip": {"auto_delete": true},
      "subnet": {"id": "0726-298acd6c-e71e-4204-a04f-fe4a4dd89805"},
      "security_groups": [
        {"id": "r006-ccdd1f58-f0f2-4ea0-8774-a24bbe61b5d9"}],
      "protocol_state_filtering_mode": "auto"}
  },
  "network_attachments": [],
  "image": {"id": "r006-534ef2ac-6158-45b3-9657-57629fa85305"},
  "enable_secure_boot": false
  "storage_qos_modes": "pooled"
}'

如需 /instance/templates 方法的其他範例,請參閱 建立實例範本 API 文件。

使用 Terraform 建立實例範本

您可以使用 Terraform 在 IBM Cloud VPC 中建立一個以上實例範本。

如需使用從專用型錄共用的自訂映像檔來建立虛擬伺服器實例的相關資訊,請參閱 使用 Terraform 建立實例

開始之前

請確定您已設定 VPC 的 Terraform

收集資訊以建立實例範本

準備好建立實例範本了嗎? 在添加之前 ibm_is_instance_template資源,您需要知道要包含在實例模板中的詳細資訊。 例如,您需要虛擬私有雲(VPC)的識別碼或名稱,以及您要建立實例範本的區域名稱。 您還需要指定要使用的實例配置檔名稱,以及欲建立範本之子網域的識別碼或名稱。

收集下列必要的 Terraform 實例範本詳細資料。

所需的 Terraform 實例模板詳細信息
實例範本詳細資料 列出區塊 VPC Terraform 資料來源參考文檔
實例設定檔 ibm_is_instance_profiles ibm_is_instance_profiles
影像 ibm_is_images ibm_是_影像
VPC ibm_is_vpc ibm_is_vpc
子網路 ibm_is_subnets ibm_是_子網路
區域 ibm_is_zone ibm_is_zone
金鑰 ibm_is_ssh_keys ibm_is_ssh_keys
放置群組 ibm_is_placement_groups ibm_is_placement_groups

請參照以下指南,確定建立實例範本所需的資訊。

使用 DataSource 區塊來收集下列資訊。

  1. 收集實例設定檔詳細資料。 針對您所選的設定檔執行以下區塊。 如需可用設定檔的清單,請參閱 x86 實例設定檔。 如需相關資訊,請參閱 ibm_is_instance_profiles 上的 Terraform 文件。 要使用實例設定檔,請參閱實例設定檔資料來源。 如需相關資訊,請參閱 ibm_is_instance_profile 上的 Terraform 文件。

    data "ibm_is_instance_profile" "example_profile" {
       name = "bx2-2x8"
    }
    
  2. 列出可用來建立實例的映像檔。 您可以使用庫存映像檔、帳戶中的自訂映像檔,或專用型錄中與帳戶共用的映像檔。 有關更多信息,請參閱 Terraform 文檔 ibm_is_image。 如果您打算使用從私有目錄共用的圖像,請參閱 Terraform 文檔 ibm_cm_版本 或者 ibm_cm_offering_instance

    • 從實例的帳戶中選取庫存映像檔或自訂映像檔。
    data "ibm_is_image" "example_image" {
       name = "ibm-centos-7-6-minimal-amd64-2"
    }
    
    • 從實例的專用型錄中選取共用的映像檔。 如需相關資訊,請參閱 ibm_is_images 上的 Terraform 文件。
    data "ibm_is_images" "example_images" {
       catalog_managed = true
    }
    

    如果您選取屬於不同帳戶的型錄映像檔,則需要檢閱更多考量及限制。 請參閱 在 Terraform 的專用型錄中使用跨帳戶映像檔參照

  3. 透過參照 VPC 資料來源來建立 VPC 資源或使用現有 VPC。 如需相關資訊,請參閱資料來源 ibm_is_vpc 或資源 ibm_is_vpc 上的 Terraform 文件。

    data "ibm_is_vpc" "example_vpc" {
       name = "example-vpc"
    }
    
  4. 透過參照子網路資料來源來建立子網路資源或使用現有子網路。 如需相關資訊,請參閱資料來源 ibm_is_subnet 或資源 ibm_is_subnet 上的 Terraform 文件。

    data "ibm_is_subnet" "example_subnet" {
       name            = "example-subnet"
       vpc             = ibm_is_vpc.example_vpc.id
       zone            = "us-south-1"
       ipv4_cidr_block = "10.240.0.0/24"
    }
    
  5. 若要使用現有的 SSH 金鑰,請參閱 SSH 金鑰資料來源 ibm_is_ssh_key。 如果您沒有任何可用的 SSH 金鑰,請使用資源 ibm_is_ssh_key 來建立一個 SSH 金鑰。

    RSA 和 ED25519 是您可使用的兩種 SSH 金鑰類型。 然而,您無法在 Windows 或 VMware 映像檔中使用 SSH ED25519 金鑰類型。 您只能對這些映像檔使用 RSA SSH 金鑰。 如需相關資訊,請參閱 開始使用 SSH 金鑰

    resource "ibm_is_ssh_key" "example_sshkey" {
       name       = "example-sshkey"
       public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR"
    }
    

使用 Terraform 建立實例範本

了解這些值後,請使用它們來編寫 ibm_is_instance_template 資源塊。 您也必須指定實例的名稱。

下面的示例创建了一个实例模板,命名为 my-instance-templateus-south-1 區域,並使用 bx2-8x32 設定檔。

resource "ibm_is_instance_template" "my-instance-template" {
  name    = "my-instance-template"
  image   = r006-3fa3bea4-7f9c-4eeb-8248-ab1f6e03185b
  profile = "bx2-8x32"

  primary_network_interface {
    subnet            = 0727-944126da-e46d-4104-8ba4-ab5a5832864b
    allow_ip_spoofing = true
  }

  placement_group = r006-9994e3ab-18ae-49a7-95cf-25c77e
  vpc             = r006-212def4b-93f0-4b9a-a331-94178b99d474
  zone            = "us-south-1"
  keys            = [363f6d70-0000-0001-0000-00000013b96c]

  boot_volume {
    name                             = "example-boot-volume"
    delete_volume_on_instance_delete = true
  }
}

以下範例建立了一個實例範本,其名稱為 my-gen3-instance-templateus-south-3 並使用 cx3d-8x20 設定檔。 當所選的 運算設定檔 支援資料卷的匯集頻寬分配時,也可以包含 storage_qos_modes 選項。

resource "ibm_is_instance_template" "example" {
  name                = "my-gen3-instance-template"
  image               = r006-534ef2ac-6158-45b3-9657-57629fa85305
  profile             = "cx3d-8x20"
  primary_network_interface {
    subnet            = 0d933c75-492a-4756-9832-1200585dfa79
    allow_ip_spoofing = true
  }
  vpc                 = r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b
  zone                = "us-south-3"
  keys                = [363f6d70-0000-0001-0000-00000013b96c]
  storage_qos_modes   = [pooled]
  boot_volume {
    name                             = "example-boot-volume"
    delete_volume_on_instance_delete = true
  }
  volume_attachments {
    delete_volume_on_instance_delete = false
    name                             = "example-data-vol-01"
    volume_prototype {
      profile = "5iops-tier"
      capacity = 3000
    }
  }
  volume_attachments {
    delete_volume_on_instance_delete = false
    name                             = "example-data-vol-02"
    volume_prototype {
      profile = "5iops-tier"
      capacity = 3000
    }
  }
}

如需 ibm_is_instance_template 的其他範例,請參閱 ibm_is_instance_template Terraform 參照。

下一步

建立實例範本之後,您可以佈建單一虛擬伺服器實例,也可以同時佈建多個實例作為實例群組的一部分。 您可以選擇性地設定實例群組的自動調整原則,以在群組中動態新增或移除虛擬伺服器實例。 如需相關資訊,請參閱下列主題: