Oracle Cloud Infrastructure(OCI)CLI命令解读
Oracle Cloud Infrastructure(OCI)CLI 的核心命令就是 oci。它本质上是把 OCI API 做成命令行接口,命令结构比较规律:服务 → 资源 → 动作。官方当前 CLI 文档也提供 -i 交互式补全。
1. 安装
Linux/macOS 最简单:
1 | bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)" |
或者 macOS:
1 | brew install oci-cli |
检查
1 | oci --version |
2. 配置 OCI 认证
第一次使用:
1 | oci setup config |
它会让你输入:
1 | Enter a location for your config [/home/user/.oci/config]: |
通常会生成:
1 | ~/.oci/config |
config 大概长这样:
1 | [DEFAULT] |
然后需要把 public key 上传到 OCI 用户的 API Keys 中。
测试:
1 | oci iam region list |
或者:
1 | oci iam compartment list \ |
3. OCI CLI命令结构(层级)
例如:
1 | oci compute instance list \ |
可以理解为:
1 | oci |
常见结构:
1 | oci compute instance list |
4.oci命令帮助操作
4.1强烈推荐-i获取帮助
如果不知道具体参数:
1 | oci -i |
OCI CLI 有交互式命令提示、参数补全和参数说明。
1 | oci compute instance -i |
实际使用 OCI CLI 时,这个功能非常省时间。
4.2查看帮助
1 | oci --help |
1 | oci compute --help |
1 | oci compute instance --help |
1 | oci compute instance launch --help |
所以遇到不会的命令,可以一直向下钻:
1 | oci |
5. 查询示例
5.1VM
列出 compartment 下所有实例:
1 | oci compute instance list \ |
指定 availability domain:
1 | oci compute instance list \ |
获取某台机器:
1 | oci compute instance get \ |
只看名称和状态:
1 | oci compute instance list \ |
这里非常重要:
1 | --query |
OCI CLI 支持 JMESPath 查询,可以直接在 CLI 层过滤 JSON。
5.2启动 / 停止 VM
启动:
1 | oci compute instance action \ |
停止:
1 | oci compute instance action \ |
重启:
1 | oci compute instance action \ |
强制重启:
1 | oci compute instance action \ |
5.3 Object Storage
查看 namespace:
1 | oci os ns get |
列 Bucket:
1 | oci os bucket list \ |
上传:
1 | oci os object put \ |
下载:
1 | oci os object get \ |
列对象:
1 | oci os object list \ |
删除:
1 | oci os object delete \ |
5.4 网络
VCN:
1 | oci network vcn list \ |
Subnet:
1 | oci network subnet list \ |
VCN 详细信息:
1 | oci network vcn get \ |
查看某个 subnet:
1 | oci network subnet get \ |
6.多Profile配置及使用
如果你有多个 OCI Tenancy,非常推荐:
1 | [DEFAULT] |
使用:
1 | oci compute instance list \ |
或者:
1 | oci compute instance list \ |
这样可以避免频繁切换配置文件。
7.输出格式
默认:
1 | --output json |
例如:
1 | oci compute instance list \ |
人类阅读:
1 | --output table |
例如:
1 | oci compute instance list \ |
CLI 真正好用的地方:JSON + JMESPath
例如:
1 | oci compute instance list \ |
得到:
1 | web-01 |
进一步:
1 | oci compute instance list \ |
这就可以把 OCI CLI 当成一个 OCI API + JSON 查询工具 使用。
8.OCI CLI 的认证方式
不只是 API Key当前 CLI 支持:
1 | api_key |
例如在 OCI VM 内使用 Instance Principal:
1 | oci --auth instance_principal \ |
这样可以避免在服务器上保存用户 API private key。
9. OCI 运维建议记住这张表
| 目的 | CLI |
|---|---|
| VM | oci compute instance |
| VCN | oci network vcn |
| Subnet | oci network subnet |
| NSG | oci network nsg |
| Load Balancer | oci lb |
| Object Storage | oci os |
| Block Volume | oci bv |
| Database | oci db |
| OKE | oci ce |
| IAM | oci iam |
| DNS | oci dns |
| Functions | oci fn |
| Logging | oci logging |
| Monitoring | oci monitoring |
| Vault | oci vault |
最值得掌握的不是背命令,而是这套模式:
1 | oci <service> <resource> <action> <options> |
例如:
1 | oci compute instance list |
1 | oci network vcn list |
1 | oci os bucket list |