使用 CLI 和 API 建立 VPC 資源
除了建立 VPC 外,您也可以建立 VPC 資源,例如實例、子網路和 Block Storage 磁碟區。
有關使用 IBM Cloud 主控台建立 VPC 資源的詳細資訊,請參閱 使用 IBM Cloud 主控台建立 VPC 資源。
使用 CLI 建立 VPC 資源
您可以使用 IBM Cloud® CLI 建立和設定 IBM Cloud® Virtual Private Cloud。
若要建立及配置虛擬專用雲端 (VPC) 及其他連接的資源,請依以下次序執行各節中的步驟:
- 建立 VPC 及子網路,以定義網路。
- 連接公用閘道,以允許子網路中的所有資源與公用網際網路進行通訊。
- 建立虛擬伺服器實例。 預設情況下,開機磁碟區會附加到實體。 對於大部分虛擬伺服器實例,預設開機磁區大小為 100 GB。 z/OS 虛擬伺服器實例的預設開機磁區大小是 250 GB。
- 如果您想要更多儲存空間,請建立區塊儲存空間磁區,然後將它連接至實例。
- 要定義實體允許的入站和出站流量,請設定其安全群組。
- 如果您想要可從網際網路連接實例,請保留並關聯浮動 IP 位址。
開始之前
請確定您已設定 CLI 環境。
登入 IBM Cloud
ibmcloud login --sso -a cloud.ibm.com
此指令會傳回 URL 並提示輸入密碼。 在瀏覽器中移至該 URL 並登入。 如果成功,您將獲得一次性密碼。 複製此密碼並將其作為回應貼上到提示上。 執行了鑑別步驟後,系統將提示您選擇帳戶。 如果您有權存取多個使用者,請選取想要以其身分登入的使用者。
系統提示您選取地區時,請選取 us-south。
回應任何剩餘提示以完成登入。
建立 VPC
使用下列指令建立名為 my-vpc 的 VPC。
ibmcloud is vpc-create my-vpc
從傳回的輸出中,將 ID 儲存在變數中,以便您稍後使用,例如:
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
前一個範例不會建立具有標準存取權的 VPC。 如果 VPC 需要存取標準資源,請參閱 設定標準基礎架構的存取權。 您只能在建立 VPC 時啟用 VPC 進行標準存取。 此外,您隨時只能在帳戶中具有一個標準存取 VPC。
建立專用型錄
這是選用步驟。 如果您計劃從專用型錄共用映像檔,則必須先建立專用型錄。 如果您選取屬於不同帳戶的型錄映像檔,則需要檢閱進一步的考量及限制。 請參閱 在專用型錄中使用跨帳戶映像檔參照。 若要建立專用型錄,請參閱指導教學 使用 CLI 將軟體上線至型錄。
建立子網路
建立子網路之前,請選取要在其中建立子網路的區域和位址字首。 若要列出 VPC 中每個區域的位址字首,請執行下列指令:
ibmcloud is vpc-address-prefixes $vpc
現在,您需要選取 us-south-3 區域的預設位址字首。 記下指令輸出中位址字首的 CIDR 區塊。 當您建立子網路時,指定的 IP 範圍必須在所選區域的其中一個位址字首內。
子網路在建立之後無法調整大小。
ibmcloud is subnet-create my-subnet $vpc us-south-3 --ipv4-cidr-block "10.0.1.0/24"
從傳回的輸出中,將 ID 儲存在變數中,以便您稍後使用,例如:
subnet="0738-658756a4-1106-4914-969a-3b43b338524a"
首次建立子網路時,其狀態為 pending。 子網路需要移至 available 狀態(這需要幾秒鐘時間)後,您才能在子網路中建立資源。 若要檢查子網路的狀態,請執行以下指令:
ibmcloud is subnet $subnet
連接公用閘道
將公用閘道連接至子網路,以允許所有連接的資源與公用網際網路進行通訊。
若要建立公用閘道,請執行下列指令:
ibmcloud is public-gateway-create my-gateway $vpc us-south-3
從傳回的輸出中,將 ID 儲存在變數中,以便您稍後使用,例如:
gateway="0738-446c0c63-f0b1-4043-b30d-644f55fde391"
若要將公用閘道連接到子網路,請執行下列指令:
ibmcloud is subnet-update $subnet --pgw $gateway
在 VPC 中,每個區域只容許有一個公用閘道,但該公用閘道可以連接到所在區域中的多個子網路。 若要尋找一個區域的公用閘道,請執行 ibmcloud is public-gateways 指令,並尋找特定的 VPC 和 Zone 值。
新增 SSH 金鑰
將公用 SSH 金鑰新增至 IBM Cloud 帳戶。 此密鑰在您建立實體時指定,之後您需要用它來登入實體。 您可以使用一個金鑰來佈建多個實例。
若要查看 IBM Cloud 帳戶中的可用金鑰,請執行此指令:
ibmcloud is keys
若要新增金鑰,請執行下列指令。 代入 SSH 金鑰檔案的路徑。 若為 RSA SSH 金鑰,您可以使用 id_rsa.pub 檔案的路徑。 若為 Ed25519 SSH 金鑰,您可以使用 id_ed25519.pub 檔案的路徑。
ibmcloud is key-create my-key @$HOME/.ssh/id_rsa.pub
從傳回的輸出中,將 ID 儲存在變數中,以便您稍後使用,例如:
key="0738-859b4e97-7540-4337-9c64-384792b85653"
選取實例的設定檔
若要列出所有可用的實例設定檔,請執行下列指令:
ibmcloud is instance-profiles
儲存您計劃用作變數的設定檔,稍後會使用該設定檔來佈建實例。
確認您使用的設定檔在您計劃建立實體的區域中可用。
由於下列原因之一,某些設定檔可能無法使用:
- 虛擬伺服器中的網路介面數量超過設定檔限制。 您可以移除網路介面,從更多設定檔中進行選擇。 如需詳細資訊,請參閱 調整虛擬伺服器的大小。
- 選取的影像包含與設定檔不相容的允許使用表達式。 在這些情況下,請選擇具有與所需設定檔相容的允許使用表達式的影像。 如需詳細資訊,請參閱 在自訂影像中加入允許使用的表達式。
選取實例的映像檔
您可以使用庫存映像檔、帳戶中的自訂映像檔或專用型錄中與帳戶共用的映像檔來建立實例。 根據您計劃使用的映像檔,執行下列其中一個指令。
-
從實例的帳戶中選取庫存映像檔或自訂映像檔。
-
若要列出所有可用的映像檔,請執行
ibmcloud is images指令。 如果清單太長,請考慮像下列範例一樣過濾它。$ ibmcloud is images | grep -i "debian.*available.*amd64.*public" r006-17cc6c08-f628-46f4-8bf4-a8edab749722 ibm-debian-10-13-minimal-amd64-4 available amd64 debian-10-amd64 10.x Buster/Stable - Minimal Install 1 public provider none Default - r006-b721bf3b-393b-4386-a618-d1ea8c004e1c ibm-debian-11-7-minimal-amd64-2 available amd64 debian-11-amd64 11.x Bullseye/Stable - Minimal Install 1 public provider none Default - r006-e66ebfcd-4aac-44e2-b504-1f6f4c003518 ibm-debian-12-0-minimal-amd64-1 available amd64 debian-12-amd64 12.x Bookworm/Stable - Minimal Install 1 public provider none Default -已淘汰的映像檔不包含最新支援。
-
選取映像檔 (如
ibm-debian-12-0-minimal-amd64-1),並將映像檔 ID 儲存為變數,稍後用來佈建實例。image=$(ibmcloud is images | grep -i "ibm-debian-12-0-minimal-amd64-1" | cut -d" " -f1)
-
-
從實例的專用型錄中選取共用的映像檔
如果您選取屬於不同帳戶的型錄映像檔,則需要檢閱進一步的考量及限制。 請參閱 在 CLI 中使用專用型錄中的跨帳戶映像檔參照
-
若要列出所有可用的專用型錄映像檔供應項目,請執行下列指令。
ibmcloud is catalog-image-offerings此指令會傳回每一個映像檔供應項目的 ID,以及映像檔所在之專用型錄的 ID。 將
offering_id和catalog_id儲存在變數中,稍後會使用這些變數來佈建實例。offering_id=6bf79f7b-de48-4ce8-8cae-866b376f2889 catalog_id=71306253-8444-4cae-a45d-64d35e5393ec -
若要取得供應項目的
offering_crn及供應項目中每一個版本的offering_version_crn,請執行下列指令。ibmcloud is catalog-image-offering $catalog_id $offering_id當您佈建實例時,可以使用
offering_crn值從型錄產品供應項目中最新版本的專用型錄管理映像檔佈建實例,或使用offering_version_crn值從型錄產品供應項目中的特定版本佈建實例。將
offering_crn和offering_version_crn儲存在變數中,稍後會使用這些變數來佈建實例。offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:offering:136559f6-4588-4af2-8585-f3c625eee09d" offering_version_crn="crn:v1:bluemix:public:globalcatalog-collection:global:a/a1234567:version:136559f6-4588-4af2-8585-f3c625eee09d/8ae92879-e253-4a7c-b09f-8d30af12e518"
-
建立實例
在新建立的子網路中建立實體。 傳入公開 SSH 金鑰,以在佈建實例之後登入。
根據您計劃使用的映像檔,執行下列其中一個 CLI 指令。
-
使用實例的帳戶中的庫存映像檔或自訂映像檔來建立實例。
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --image-id $image --keys $key -
使用最新映像檔版本中的專用型錄管理映像檔來建立實例。
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering $offering_crn --keys $key -
使用映像檔特定版本的專用型錄管理映像檔來建立實例。
ibmcloud is instance-create my-instance $vpc us-south-3 bx2-2x8 $subnet --catalog-offering-version $offering_version_crn --keys $key
建立實例之後,不會傳回為新實例建立之網路介面的相關資訊。
從傳回的輸出中,將該實例的 ID 儲存在變數中,以便日後使用,例如:
instance="0738-21179496-964e-4c00-8210-cf23d75750b3"
第一次建立實體時,實體的狀態是 pending。 在您繼續之前,實例需要變成 running 狀態,這需要幾分鐘。 若要檢查實例的狀態,請執行以下指令:
ibmcloud is instance $instance
從傳回的輸出中,將 VNI (虛擬網路介面) 的 ID 儲存到變數中,以便日後使用,例如:
vni="0717-0b45c763-fada-4d44-8f46-e71154ec11e0"
建立 Block Storage 資料卷
如果想要更多儲存空間,可以建立區塊儲存空間磁區,然後將它連接至虛擬伺服器實例。 建立區塊儲存空間磁區時,請選取設定檔以最佳化運算工作負載的效能。 如需根據您選取的磁區設定檔之磁區容量及 IOPS 範圍的相關資訊,請參閱 設定檔。
若要查看磁區設定檔的清單,請執行以下指令:
ibmcloud is volume-profiles
執行此指令以建立區塊儲存空間資料磁區。 指定磁區的名稱、磁區設定檔以及要在其中建立磁區的區域。 若要將區塊儲存空間資料磁區連接到實例,實例和區塊儲存空間資料磁區必須在相同區域中建立。
ibmcloud is volume-create my-volume custom us-south-3 --iops 1000 --capacity 500
從傳回的輸出中,將卷的 ID 儲存在變數中,以便日後使用:
vol=0738-933c8781-f7f5-4a8f-8a2d-3bfc711788ee
首次建立磁碟區時,其狀態為 pending。 磁區需要變成 available 狀態(這需要幾分鐘時間)後,您才能繼續操作。
若要檢查磁區的狀態,請執行以下指令:
ibmcloud is volume $vol
將 Block Storage 資料卷附加到實體
使用您建立的變數,使用下列指令將磁碟區附加到虛擬伺服器實體:
ibmcloud is instance-volume-attachment-add my-volume-attachment $instance $vol --auto-delete true
將規則新增至預設安全群組
您可以配置安全群組,以定義容許用於實例的入埠及出埠資料流量。 例如,您可以新增規則以允許 SSH 資料流量。
尋找 VPC 的安全群組:
ibmcloud is vpc-sg $vpc
從傳回的輸出中,將 ID 儲存在變數中,以便稍後使用:
sg=0738-2d364f0a-a870-42c3-a554-000000981149
現在,建立容許 SSH 資料流量的規則:
ibmcloud is sg-rulec $sg inbound tcp --port-min=22 --port-max=22
(選用)您還可以新增規則以容許對資料流量執行 ping 操作:
ibmcloud is sg-rulec $sg inbound icmp --icmp-type 8 --icmp-code 0
對於 Windows 影像,請確定與實例關聯的安全群組允許進站和出站遠端桌面通訊協定流量 ( TCP 連接埠 3389)。
為實體建立浮動 IP 位址
如果您想要可從網際網路連接實例,請建立浮動 IP 位址。
ibmcloud is floating-ip-reserve my-fip --vni $vni
例如:
ibmcloud is floating-ip-reserve my-fip --vni $vni
Creating floating IP my-fip under account rnos's Account as user bob@ibm.com...
ID r006-a398f234-7785-4e28-8861-02a96c928fa3
Address 52.118.151.163
Name my-fip
CRN crn:v1:bluemix:public:is:us-south-1:a/b21af5a9874242b7851e780943d795a9::floating-ip:r006-a398f234-7785-4e28-8861-02a96c928fa3
Status pending
Zone us-south-1
Created 2026-03-04T10:48:37+05:30
Target ID Target type Name
0717-0b45c763-fada-4d44-8f46-e71154ec11e0 virtual_network_interface alto-uncrushed-disliking-dismiss
Resource group Default
從傳回的輸出中,將 Address 儲存在變數中,以便日後使用:
address=52.118.151.163
登入您的實例
例如,在 Linux 上,可以使用以下格式的指令:
ssh -i $HOME/.ssh/id_rsa root@$address
依預設,在 Fedora Core OS 中已停用使用者登入 'root'。 使用者登入 'core' 可用來登入 Fedora Core OS 實例。
系統提示您繼續連接時,請鍵入 yes。
安全群組可能會防止以 SSH 方式存取實例。 請確定實例的安全群組允許 SSH 存取。
若要連接至 Windows 映像檔,請使用其解密後的密碼來登入。 如需指示,請參閱 連接至 Windows 實例。
監視實例
您可以在 IBM Cloud 主控台裡,監視實例在一段時間內的 CPU、磁區、記憶體和網路用量。 由於監視資料儲存在 IBM Cloud Monitoring,您必須透過帳戶中 Monitoring 服務的實例鑑別。 如需詳細資訊,請參閱 開始使用監控。
對於 IBM Cloud Hyper Protect Virtual Servers for IBM Cloud® Virtual Private Cloud 實體,無法收集記憶體指標,因為 Hyper Protect Virtual Servers for VPC 實體是使用安全執行影像建立的,而安全執行實體的記憶體是無法存取的。
建立 VPN 閘道
如果您想要安全地將 VPC 連接至另一個專用網路,請在子網路上建立 VPN 閘道。
若要建立 VPN 閘道,請執行下列指令:
ibmcloud is vpn-gateway-create my-vpn-gateway $subnet
從傳回的輸出中,將 VPN 閘道的 ID 儲存在變數中,以便日後使用,例如:
vpn_gateway="0757-7e91085b-dc11-4707-aa4d-66e735e9a2bc"
第一次建立 VPN 閘道時,VPN 閘道的狀態為 pending。 在您繼續之前,VPN 閘道需要移至 available 狀態,這需要幾分鐘的時間。 若要檢查 VPN 閘道的狀態,請執行此指令:
ibmcloud is vpn-gateway $vpn_gateway
若要在 VPN 閘道上建立對等節點位址 169.61.161.150 及預先共用金鑰 mykey 的 VPN 連線,請執行下列指令:
ibmcloud is vpn-gateway-connection-create my-vpn-conn $vpn_gateway 169.61.161.150 mykey
在此範例中,169.61.161.150 是對等節點閘道位址,其指定 VPC 外部網路的 VPN 閘道 IP 位址。 mykey 值是您 VPC 外部網路的 VPN 閘道的驗證金鑰。 它是十六進位數字的字串,或可列印 ASCII 字元的通行詞組。 若要與大部分同層級閘道類型相容,此字串必須遵循下列規則:
- 可以是數字、小寫或大寫字元或下列特殊字元的組合:
- + & ! @ # $ % ^ * ( ) . , : - 字串的長度必須為 6-128 個字元。
- 不能以
0x或0s開頭。
第一次建立 VPN 連線時,該連線的狀態為 down,並在建立連線之後變成 up。 若要檢查 VPN 閘道上 VPN 連線的狀態,請執行下列指令:
ibmcloud is vpn-gateway-connections $vpn_gateway
恭禧!
您已從 IBM Cloud CLI 順利建立並配置 VPC。 若要嘗試更多 CLI 指令,請參閱 CLI 參考資料。
使用 REST API 建立 VPC 資源
您可以使用 REST API 來建立和設定 IBM Cloud® Virtual Private Cloud 資源。
若要建立及配置虛擬專用雲端 (VPC) 及其他連接的資源,請依以下次序執行各節中的步驟:
- 建立 VPC 及子網路,以定義網路。
- 連接公用閘道,以允許子網路中的所有資源與公用網際網路進行通訊。
- 建立虛擬伺服器實例。 依預設,100 GB 的開機磁區會連接至實例。
- 如果您想要更多儲存空間,請建立區塊儲存空間磁區,然後將它連接至實例。
- 要定義實體允許的入站和出站流量,請設定其安全群組。
- 如果您想要可從網際網路連接實例,請保留並關聯浮動 IP 位址。
開始之前
定義 IAM 記號、API 端點和 API 版本的變數。 如需指示,請參閱設定 API 和 CLI 環境。
若要進一步瞭解 API,一個好辦法是在 IBM Cloud 主控台中的佈建頁面上按一下取得範例 API 呼叫。 您可以檢視正確的 API 要求序列,並更充分地瞭解動作及其相依關係。
建立 VPC
建立名為 my-vpc 的 IBM Cloud VPC。
curl -X POST "$vpc_api_endpoint/v1/vpcs?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-vpc"
}'
您必須在每個 API 要求中傳送 generation 參數,以指定要使用的世代。 針對第 2 代的虛擬伺服器實例,請指定 generation=2。 如需詳細資訊,請參閱 虛擬私有雲 API 中的世代
對於其餘的呼叫,您需要知道新建立的 VPC 的 ID。 將該 ID 儲存在變數中,例如:
vpc="0738-59de4046-3434-4d87-bb29-0c99c428c96e"
若要驗證變數是否已儲存,請執行 echo $vpc,並確定回應不是空的。
前一個範例不會建立具有標準存取權的 VPC。 如果 VPC 需要存取標準資源,請參閱 設定標準基礎架構的存取權。 您只能在建立 VPC 時啟用 VPC 進行標準存取。 此外,您隨時只能在帳戶中具有一個標準存取 VPC。
建立專用型錄
這是選用步驟。 如果您計劃從專用型錄共用映像檔,則必須先建立專用型錄。 如果您選取屬於不同帳戶的型錄映像檔,則需要檢閱進一步的考量及限制。 請參閱 在主控台的私人目錄中使用跨帳戶影像引用。 若要建立專用型錄,請參閱指導教學 使用 CLI 將軟體上線至型錄。
建立子網路
建立子網路之前,請選取要在其中建立子網路的區域和位址字首。 若要列出 VPC 中每個區域的位址字首,請執行下列指令:
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/address_prefixes?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
現在,選擇 us-south-3 區域的預設位址前綴。 記下回應中位址字首的 CIDR 區塊。 當您建立子網路時,指定的 IP 範圍必須在所選區域的其中一個位址字首內。
子網路在建立之後無法調整大小。
curl -X POST "$vpc_api_endpoint/v1/subnets?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-subnet",
"ipv4_cidr_block": "10.0.1.0/24",
"zone": { "name": "us-south-3" },
"vpc": { "id": "'$vpc'" }
}'
將子網路 ID 儲存在變數中。
subnet="0738-35fb0489-7105-41b9-99de-033fae723006"
若要在子網路中佈建資源,子網路必須處於 Ready 狀態。 繼續之前,請查詢子網路資源,並確保狀態為 Ready。 如果狀態為 failed,請與支援中心聯絡,以取得詳細資料。 您可以嘗試佈建另一個子網路以試著繼續進行。
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
連接公用閘道
將公用閘道連接至子網路,以允許所有連接的資源與公用網際網路進行通訊。
為區域建立公用閘道:
curl -X POST "$vpc_api_endpoint/v1/public_gateways?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-gateway",
"zone": { "name": "us-south-3" },
"vpc": { "id": "'$vpc'" }
}'
將公用閘道 ID 儲存在變數中。
gateway="0738-ad0cded3-53a3-4d4a-9809-8c59b50d2b80"
將公用閘道連接到子網路。
curl -X PUT "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"id": "'$gateway'"
}'
在 VPC 中,每個區域只容許有一個公用閘道,但該公用閘道可以連接到所在區域中的多個子網路。 若要尋找一個區域的公用閘道,請執行 ibmcloud is public-gateways 指令,並尋找特定的 VPC 和 Zone 值。
然後,您可以執行下列指令,擷取並檢視連接至子網路的公用閘道。
curl -X GET "$vpc_api_endpoint/v1/subnets/$subnet/public_gateway?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
新增 SSH 金鑰
將公用 SSH 金鑰新增至 IBM Cloud 帳戶。 此密鑰在您建立實體時指定,之後您需要用它來登入實體。 您可以使用一個金鑰來佈建多個實例。
curl -X POST "$vpc_api_endpoint/v1/keys?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-key",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYsc8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQLGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L"
}'
將 SSH 金鑰 ID 儲存在變數中,例如:
key="0738-35fb0489-7105-41b9-8764-033fae723006"
選取實例的設定檔
呼叫 API 以列出所有設定檔。 下列指令將列出可用的設定檔。
curl -X GET "$vpc_api_endpoint/v1/instance/profiles?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
將設定檔名稱儲存在變數中,稍後會使用該變數來佈建實例。 例如,
profile_name="b2-2x8"
確認您使用的設定檔在您計劃建立實體的區域中可用。
由於下列原因之一,某些設定檔可能無法使用:
- 虛擬伺服器中的網路介面數量超過設定檔限制。 您可以移除網路介面,從更多設定檔中進行選擇。 如需詳細資訊,請參閱 調整虛擬伺服器的大小。
- 選取的影像包含與設定檔不相容的允許使用表達式。 在這些情況下,請選擇具有與所需設定檔相容的允許使用表達式的影像。 如需詳細資訊,請參閱 在自訂影像中加入允許使用的表達式。
選取實例的映像檔
您可以使用庫存映像檔、帳戶中的自訂映像檔或專用型錄中與帳戶共用的映像檔來建立實例。 根據您計劃使用的映像檔,執行下列其中一個 API 呼叫。
-
從實例的帳戶中選取庫存映像檔或自訂映像檔。
下列指令會列出可用的映像檔。
curl -X GET "$vpc_api_endpoint/v1/images?version=$api_version&generation=2" \ -H "Authorization:$iam_token"將映像檔 ID 儲存在變數中,稍後將使用該變數來佈建實例。 例如,
image_id="0738-660198a6-52c6-21cd-7b57-e37917cef586" -
從實例的專用型錄中選取共用的映像檔。
如果您選取屬於不同帳戶的型錄映像檔,則需要檢閱進一步的考量及限制。 請參閱 在 API 中使用專用型錄中的跨帳戶映像檔參照
您可以從型錄產品供應項目中最新版本的專用型錄映像檔或從型錄產品供應項目中的特定版本佈建實例。
若要從最新版型錄產品供應項目中選取專用型錄映像檔,請參閱 型錄管理 API-取得供應項目。 尋找供應項目 CRN,並將它儲存至變數以供稍後使用:
offering_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:offering:00111601-0ec5-41ac-b142-96d1e64e6442-global"若要從型錄產品供應項目的特定版本選取專用型錄映像檔,請參閱 型錄管理 API-取得供應項目。 然後,跳至 取得供應項目> Kinds> 版本> CRN,以擷取版本的 CRN 並將其儲存至變數以供稍後使用:
version_crn="crn:v1:bluemix:public:globalcatalog-collection:global::1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc:version:00111601-0ec5-41ac-b142-96d1e64e6442-global/ec66bec2-6a33-42d6-9323-26dd4dc8875d-global"
建立實例
在新建立的子網路中建立實體。 傳入公開 SSH 金鑰,以在佈建實例之後登入。 根據您計劃使用的映像檔類型,執行下列其中一個 API 呼叫。
-
從實例的帳戶中選取庫存映像檔或自訂映像檔。
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "image": { "id": "'$image_id'" } }' -
使用型錄產品供應項目最新版本中的專用型錄映像檔來建立實例。
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "catalog_offering": { "offering": { "crn": "'$offering_crn'" } }' -
使用型錄產品供應項目特定版本的專用型錄映像檔來建立實例。
curl -X POST "$vpc_api_endpoint/v1/instances?version=$api_version&generation=2" \ -H "Authorization:$iam_token" \ -d '{ "name": "my-instance", "zone": { "name": "us-south-3" }, "vpc": { "id": "'$vpc'" }, "primary_network_interface": { "subnet": { "id": "'$subnet'" } }, "keys":[{"id": "'$key'"}], "profile": { "name": "'$profile_name'" }, "catalog_offering": { "version": { "crn": "'$version_crn'" } }'
將實例的 ID 儲存在變數中,例如:
instance="0738-35fb0489-7105-41b9-99de-033fae723006"
當您建立實例時,實例的狀態為 stopped。 在您繼續之前,實例需要變成 running 狀態,這需要幾分鐘。 請查詢實例的狀態,並確保狀態為 running。
curl -X GET "$vpc_api_endpoint/v1/instances/$instance?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
儲存 GET/instance API 呼叫中傳回的實例的主要網路介面 ID,例如:
network_interface="0738-7710e766-dd6e-41ef-9d36-06f7adbef33d"
除非查詢特定實例,否則無法取得主要網路介面的 ID。
(選用)建立並附加 Block Storage 資料磁碟區
您可以建立 Block Storage 資料卷,並將其附加到虛擬伺服器實作為輔助儲存。 使用與此範例類似的要求來建立資料磁區。 此程序會顯示磁碟區配置文件、建立磁碟區、將磁碟區 ID 儲存在變數中、檢查磁碟區狀態,然後建立磁碟區附件。
顯示磁區設定檔的清單:
curl -X GET "$vpc_api_endpoint/v1/volumes/profiles?version=$api_version&generation=2" \
-H "Authorization: $iam_token" \
設定檔可以是 general-purpose (3 IOPS/GB)、5iops-tier、10iops-tier 和 custom。 如需根據您選取的磁區設定檔之磁區容量及 IOPS 範圍的相關資訊,請參閱 設定檔。
建立資料磁區:
curl -X POST "$vpc_api_endpoint/v1/volumes?version=$api_version&generation=2" \
-H "Authorization: $iam_token" \
-d '{
"name": "my-volume",
"iops": 1000,
"capacity": 100,
"zone": {
"name": "us-south-3"
},
"profile": {
"name": "custom"
}
}'
將卷冊的 ID 儲存在變數中:
volume_id="0738-640774d7-2adc-4609-add9-6dfd96167a8f"
首次建立磁碟區時,其狀態為 pending。 磁區需要變成 available 狀態(這需要幾分鐘時間)後,您才能繼續操作。
檢查音量的狀態:
curl -X GET "$vpc_api_endpoint/v1/volumes/$volume_id?version=$api_version&generation=2" \
-H "Authorization: $iam_token"
建立卷附件,將新資料卷附加到虛擬伺服器實例。 使用您先前在要求中建立的實例 ID 變數。 使用磁區 ID 變數來指定磁區。
建立磁區連接:
curl -X POST "$vpc_api_endpoint/v1/instances/$instance/volume_attachments?version=$version&generation=2" \
-H "Authorization: $iam_token" \
-d '{
"name": "my-volume-attachment",
"volume": {
"id": "'$volume_id'"
}
}'
將規則新增至預設安全群組
您可以配置安全群組,以定義容許用於實例的入埠及出埠資料流量。 例如,您可以新增規則以允許 SSH 資料流量。
尋找 VPC 的安全群組:
curl -X GET "$vpc_api_endpoint/v1/vpcs/$vpc/default_security_group?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
將安全群組的 ID 儲存在變數中,例如:
sg=0738-2d364f0a-a870-42c3-a554-000000981149
現在建立允許入站 SSH 流量的規則,以便您可以連線到實體:
curl -X POST "$vpc_api_endpoint/v1/security_groups/$sg/rules?version=$api_version&generation=2" \
-H "Authorization: $iam_token" \
-d '{
"direction": "inbound",
"protocol": "tcp",
"port_min": 22,
"port_max": 22
}'
對於 Windows 影像,請確定與實例關聯的安全群組允許進站和出站遠端桌面通訊協定流量 ( TCP 連接埠 3389)。
建立浮動 IP 位址
如果您想要可從網際網路連接實例,請建立浮動 IP 位址。 請將實例的主要網路介面用作浮動 IP 位址的目標。
curl -X POST "$vpc_api_endpoint/v1/floating_ips?version=$api_version&generation=2" \
-H "Authorization:$iam_token" \
-d '{
"name": "my-floatingip",
"target": {
"id":"'$network_interface'"
}
}
'
將浮動 IP 位址的 ID 儲存在變數中,例如:
floating_ip="0738-35fb0489-7105-41b9-99de-033fae723006"
登入您的實例
要連接到實例,請使用您建立的浮動 IP 位址。 若要取得浮動 IP 位址,請執行下列指令:
curl -X GET "$vpc_api_endpoint/v1/floating_ips/$floating_ip?version=$api_version&generation=2" \
-H "Authorization:$iam_token"
在 Linux 上,使用浮動 IP 的 address 來透過 SSH 連接至實例:
ssh -i <private_key_file> root@<floating ip address>
依預設,在 Fedora Core OS 中已停用使用者登入 'root'。 使用者登入 'core' 可用來登入 Fedora Core OS 實例。
若要連接至 Windows 映像檔,請使用其解密後的密碼來登入。 如需指示,請參閱 連接至 Windows 實例。
監視實例
您可以在 IBM Cloud 主控台裡,監視實例在一段時間內的 CPU、磁區、記憶體和網路用量。 因為監視資料儲存在 IBM Cloud Monitoring中,您必須向帳戶中的 IBM Cloud Monitoring 實例進行鑑別。 有關更多信息,請參閱 IBM Cloud Monitoring。
(選用): 刪除資源
您可以隨時刪除資源。 不過,如果其他資源需要資源,則無法刪除該資源。 例如,如果 VPC 包含實例、子網路或公用閘道,則無法刪除該 VPC。 有關刪除 VPC 及其所有資源的說明,請參閱 使用 REST API 刪除 VPC。
恭禧!
您使用 REST API 成功建立並設定了 VPC。 若要嘗試更多 API 指令,請參閱 Virtual Private Cloud API。