如何在 OCI 中列出 public 所有计算实例的 IP?
How to list public IPs of all compute instances in OCI?
我需要获取我的 OCI 租户的所有实例的 public IP。
我在这里看到了一个 python 脚本来从 OCI 控制台云 Shell 执行此操作:https://medium.com/oracledevs/writing-python-scripts-to-run-from-the-oci-console-cloud-shell-a0be1091384c
但我想创建一个 bash 脚本,它使用 OCI CLI 命令来获取所需的数据。
如何使用 OCI CLI 命令实现此目的?
OCI CLI structured-search
和 query
功能可用于获取实例的 OCID,并且 instance
命令可用于获取实例详细信息。
输出默认为json格式。
您可以使用 jq
从输出中过滤所需的数据 json 并使用它创建一个数组。
(OCI工具支持JMESPath查询)
这是来自 bash 脚本的片段,它使用 OCI CLI 命令获取隔离区中所有计算实例的 public IP:
先决条件:应正确安装和配置 OCI CLI 以使用正确的租户和隔离区进行身份验证
# Fetch the OCID of all the running instances in OCI and store to an array
instance_ocids=$(oci search resource structured-search --query-text "QUERY instance resources where lifeCycleState='RUNNING'" --query 'data.items[*].identifier' --raw-output | jq -r '.[]' )
# Iterate through the array to fetch details of each instance one by one
for val in ${instance_ocids[@]} ; do
echo $val
# Get name of the instance
instance_name=$(oci compute instance get --instance-id $val --raw-output --query 'data."display-name"')
echo $instance_name
# Get Public Ip of the instance
public_ip=$(oci compute instance list-vnics --instance-id $val --raw-output --query 'data[0]."public-ip"')
echo $public_ip
done
参考资料:
https://docs.oracle.com/en-us/iaas/tools/oci-cli/2.9.9/oci_cli_docs/cmdref/compute/instance.html
我需要获取我的 OCI 租户的所有实例的 public IP。
我在这里看到了一个 python 脚本来从 OCI 控制台云 Shell 执行此操作:https://medium.com/oracledevs/writing-python-scripts-to-run-from-the-oci-console-cloud-shell-a0be1091384c
但我想创建一个 bash 脚本,它使用 OCI CLI 命令来获取所需的数据。
如何使用 OCI CLI 命令实现此目的?
OCI CLI structured-search
和 query
功能可用于获取实例的 OCID,并且 instance
命令可用于获取实例详细信息。
输出默认为json格式。
您可以使用 jq
从输出中过滤所需的数据 json 并使用它创建一个数组。
(OCI工具支持JMESPath查询)
这是来自 bash 脚本的片段,它使用 OCI CLI 命令获取隔离区中所有计算实例的 public IP:
先决条件:应正确安装和配置 OCI CLI 以使用正确的租户和隔离区进行身份验证
# Fetch the OCID of all the running instances in OCI and store to an array
instance_ocids=$(oci search resource structured-search --query-text "QUERY instance resources where lifeCycleState='RUNNING'" --query 'data.items[*].identifier' --raw-output | jq -r '.[]' )
# Iterate through the array to fetch details of each instance one by one
for val in ${instance_ocids[@]} ; do
echo $val
# Get name of the instance
instance_name=$(oci compute instance get --instance-id $val --raw-output --query 'data."display-name"')
echo $instance_name
# Get Public Ip of the instance
public_ip=$(oci compute instance list-vnics --instance-id $val --raw-output --query 'data[0]."public-ip"')
echo $public_ip
done
参考资料:
https://docs.oracle.com/en-us/iaas/tools/oci-cli/2.9.9/oci_cli_docs/cmdref/compute/instance.html