建立實例範本
您可以建立實例範本,用以定義實例的詳細資訊,從而配置一個或多個虛擬伺服器。 建立實例範本時,您可以使用它來佈建單一虛擬伺服器實例,也可以同時佈建多個實例作為實例群組的一部分。
使用使用者介面建立實例範本
實例範本定義從範本建立之虛擬伺服器實例的詳細資料。 例如,指定映像檔範本的設定檔 (vCPU 及記憶體)、映像檔、已連接磁區及網路介面。
要建立實例範本,請完成以下步驟。
- 在 IBM Cloud控制台中,點選導航選單圖示
> 基礎架構
> 計算 > 實例範本。
- 點選「新實例範本」,並輸入表 1 中的資訊。
- 當資訊完成時,按一下 建立實例範本。
當您建立實例範本時,會執行驗證步驟,以確保您可以使用範本來佈建虛擬伺服器實例。
| 欄位 | 值 |
|---|---|
| 位置 | 位置是由地區(特定地理區域)及區域(地區內的容錯資料中心)所組成。 請選擇您要建立虛擬伺服器執行個體的地理位置、區域及區域。 |
| 名稱 | 虛擬伺服器實例需要名稱。 |
| 資源群組 | 為實例選取資源群組。 |
| 影像 |
按一下 變更影像 以選取影像。 在「選取映像檔」頁面上,您可以選取庫存映像檔、自訂映像檔、型錄映像檔、Snapshot 或現有磁區。 如果您配置实例的地理位置支持,您可以选择以下之一:
選擇映像後,按一下儲存。
|
| 設定檔 | 按一下變更設定檔,從所有可用的 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 |
列出所有放置群組 |
確認您要使用的設定檔在您計劃建立實體的區域中可用。
使用以下指令來確定建立實例範本所需的資訊。
-
請列出與您的帳戶相關聯的地區。
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 -
切換至目標地區。
ibmcloud target -r <region-name> -
列出與目標地區相關聯的區域。
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 -
列出與您帳戶相關聯的 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 參考資料。 -
列出可用於建立您的實例範本的設定檔。
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 -
列出與 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 參考 手冊。 -
列出可用於建立您的實例範本的映像檔。
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 -
列出可以與實例相關聯的可用 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 金鑰。
-
列出所有可與您的執行個體關聯的配置群組。
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 規格文件 |
|---|---|---|
| VPC | GET /vpcs |
列出所有 VPC |
| 區域 | GET /regions/<region>/zones |
列出地區中的所有區域 |
| 設定檔 | GET /instance/profiles |
列出所有實例設定檔 |
| 子網路 | GET /subnets |
列出所有子網路 |
| 影像 | GET /images |
列出所有映像檔 |
| 索引鍵 | GET /keys |
列出所有金鑰 |
| 放置群組 | GET /placement_groups |
列出所有放置群組 |
確認您要使用的設定檔在您計劃建立實體的區域中可用。
使用以下指令來確定建立實例範本所需的資訊。
-
列出與您帳戶相關聯的 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。 -
請列出與您的帳戶相關聯的地區。
curl -X GET "$vpc_api_endpoint/v1/regions?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
請列出與該區域相關聯的區域。
curl -X GET "$vpc_api_endpoint/v1/regions/$region_name/zones?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
列出可用於建立您的執行個體範本的設定檔。
curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
列出與 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 文件-建立子網路。 -
列出可用於建立您的執行個體範本的影像。
curl -X GET "$vpc_api_endpoint/v1/images?version=2023-07-13&generation=2" -H "Authorization: Bearer $iam_token" -
列出可以與實例相關聯的可用 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 金鑰。
-
列出所有可與您的執行個體關聯的配置群組。
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-template 在 us-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 實例範本詳細資料。
| 實例範本詳細資料 | 列出區塊 | 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 區塊來收集下列資訊。
-
收集實例設定檔詳細資料。 針對您所選的設定檔執行以下區塊。 如需可用設定檔的清單,請參閱 x86 實例設定檔。 如需相關資訊,請參閱 ibm_is_instance_profiles 上的 Terraform 文件。 要使用實例設定檔,請參閱實例設定檔資料來源。 如需相關資訊,請參閱 ibm_is_instance_profile 上的 Terraform 文件。
data "ibm_is_instance_profile" "example_profile" { name = "bx2-2x8" } -
列出可用來建立實例的映像檔。 您可以使用庫存映像檔、帳戶中的自訂映像檔,或專用型錄中與帳戶共用的映像檔。 有關更多信息,請參閱 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 的專用型錄中使用跨帳戶映像檔參照。
-
透過參照 VPC 資料來源來建立 VPC 資源或使用現有 VPC。 如需相關資訊,請參閱資料來源 ibm_is_vpc 或資源 ibm_is_vpc 上的 Terraform 文件。
data "ibm_is_vpc" "example_vpc" { name = "example-vpc" } -
透過參照子網路資料來源來建立子網路資源或使用現有子網路。 如需相關資訊,請參閱資料來源 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" } -
若要使用現有的 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-template。us-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-template 在 us-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 參照。
下一步
建立實例範本之後,您可以佈建單一虛擬伺服器實例,也可以同時佈建多個實例作為實例群組的一部分。 您可以選擇性地設定實例群組的自動調整原則,以在群組中動態新增或移除虛擬伺服器實例。 如需相關資訊,請參閱下列主題: