OCI VCNのBulkIP機能を使うと、1回のリクエストで複数のPrivate IPをVNICに作成できます。この記事では、oci network private-ip bulk-create を使って、1つのVNICに 10.1.1.30 から 10.1.1.45 までの16個のSecondary Private IPを一括作成した流れをまとめます。
前提
- 対象VCN、サブネット、VNICは作成済み
- OCI CLIが利用可能
- 対象VNICのOCIDを確認済み
- この記事ではVNIC指定で実行する
注意点として、検証メモでは subnetId と vnicId を同時指定せず、VNIC指定で実行しています。
作成前の状態
対象VNICには、作成前はプライマリのPrivate IPのみが割り当てられていました。
作成用JSONを用意する
bulkCreatePrivateIpItem に作成したいIPアドレスを並べます。
cat > bulk-create.json <<'JSON'
{
"vnicId": "<target-vnic-ocid>",
"bulkCreatePrivateIpItem": [
{ "ipAddress": "10.1.1.30", "displayName": "sec-10.1.1.30" },
{ "ipAddress": "10.1.1.31", "displayName": "sec-10.1.1.31" },
{ "ipAddress": "10.1.1.32", "displayName": "sec-10.1.1.32" },
{ "ipAddress": "10.1.1.33", "displayName": "sec-10.1.1.33" },
{ "ipAddress": "10.1.1.34", "displayName": "sec-10.1.1.34" },
{ "ipAddress": "10.1.1.35", "displayName": "sec-10.1.1.35" },
{ "ipAddress": "10.1.1.36", "displayName": "sec-10.1.1.36" },
{ "ipAddress": "10.1.1.37", "displayName": "sec-10.1.1.37" },
{ "ipAddress": "10.1.1.38", "displayName": "sec-10.1.1.38" },
{ "ipAddress": "10.1.1.39", "displayName": "sec-10.1.1.39" },
{ "ipAddress": "10.1.1.40", "displayName": "sec-10.1.1.40" },
{ "ipAddress": "10.1.1.41", "displayName": "sec-10.1.1.41" },
{ "ipAddress": "10.1.1.42", "displayName": "sec-10.1.1.42" },
{ "ipAddress": "10.1.1.43", "displayName": "sec-10.1.1.43" },
{ "ipAddress": "10.1.1.44", "displayName": "sec-10.1.1.44" },
{ "ipAddress": "10.1.1.45", "displayName": "sec-10.1.1.45" }
]
}
JSON
一括作成する
oci network private-ip bulk-create --from-json file://bulk-create.json
成功するとWork Request IDが返ります。
{
"opc-work-request-id": "<work-request-ocid>"
}
作成結果を確認する
サブネット側のIP管理画面で、指定したIPが割り当て済みになっていることを確認できます。
VNIC側でも、複数のSecondary Private IPが紐づいていることを確認できます。
CLIで確認する場合は、次のように一覧できます。
oci network private-ip list --vnic-id "$VNIC_ID" \
--query 'data[].{ip:"ip-address", id:id, isPrimary:"is-primary", name:"display-name"}' \
--output table
一括削除する
削除はPrivate IPのOCIDを指定します。まず対象範囲のPrivate IP OCIDを取得します。
oci network private-ip list --vnic-id "$VNIC_ID" \
--query 'data[?"is-primary"==`false` && "ip-address">=`10.1.1.30` && "ip-address"<=`10.1.1.45`].id | join(`"\n"`, @)' \
--raw-output > privateip_ids.txt
bulk-delete 用JSONを生成します。
{
echo '{'
echo " \"vnicId\": \"$VNIC_ID\","
echo ' "bulkDeletePrivateIpItem": ['
awk '{print " { \"privateIpId\": \""$0"\" },"}' privateip_ids.txt | sed '$ s/,$//'
echo ' ]'
echo '}'
} > bulk-delete.json
削除します。
oci network private-ip bulk-delete --from-json file://bulk-delete.json
まとめ
bulk-create を使うことで、複数のSecondary Private IPを1回のAPI呼び出しで作成できました。多数のIPをVNICに割り当てる運用では、個別に作成するより手順を簡略化できます。


