准备工作

在开始之前,请确保你已具备以下条件:

  1. 一个 Oracle Cloud 账户:如果你还没有,可以注册一个 Oracle Cloud 的免费套餐账户。
  2. 拥有权限的 IAM 用户:你需要在 OCI 账户中拥有一个用户,并确保该用户有所需的权限(例如,管理 instance-family 资源的权限)。
  3. 本地环境:一台安装了 Linux, macOS, 或 Windows 的计算机。
  4. Python 环境:OCI-CLI 需要 Python 3.6 或更高版本。你可以在终端运行 python3 --version 来检查。

第一步:安装 OCI-CLI

安装 OCI-CLI 最简单的方法是使用官方提供的安装脚本。它会自动处理依赖关系、创建虚拟环境,并将 CLI 添加到你的系统路径中。

打开你的终端 (Terminal) 并运行以下命令:

bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"

安装过程中,脚本会向你询问几个问题:

  • Installation directory:安装目录,直接按回车使用默认值即可 (~/lib/oracle-cli)。
  • oci-cli-scripts directory:脚本目录,同样建议使用默认值 (~/bin)。
  • Modify PATH:询问是否要将脚本目录添加到 PATH 环境变量中。强烈建议输入 Y,这样你就可以在任何地方直接运行 oci 命令了。

安装完成后,关闭并重新打开你的终端窗口,或者运行 source ~/.bashrc (或对应的 shell 配置文件) 来使 PATH 的改动生效。

通过以下命令验证安装是否成功:

oci --version

如果能看到版本号信息,说明 OCI-CLI 已经成功安装在你的本地计算机上。

第二步:配置 OCI-CLI

安装只是第一步,要让 CLI 与你的 OCI 账户通信,还需要进行配置。这个过程主要是生成一个 API 密钥对,并将公钥上传到你的 OCI 用户设置中。

运行交互式配置命令:

oci setup config

这个向导会引导你完成配置:

  1. Config file location: 配置文件路径,直接回车使用默认值 ~/.oci/config
  2. User OCID: 你的用户 OCID。你需要登录 OCI 控制台,点击右上角的用户头像 -> 用户设置,在用户详情页面可以找到并复制你的 OCID。
  3. Tenancy OCID: 你的租户 OCID。同样在 OCI 控制台,点击用户头像 -> 租户:<你的租户名>,在租户详情页面可以找到并复制。
  4. Region: 你所在的区域。例如,us-ashburn-1。你可以在 OCI 控制台的右上角看到当前区域。输入区域标识符 (Region Identifier)。
  5. Generate a new RSA key pair: 询问是否要生成新的 API 密钥对,输入 Y
  6. Directory for keys: 密钥存储目录,建议使用默认值 ~/.oci/
  7. Key name: 密钥文件名,建议使用默认值 oci_api_key
  8. Passphrase: 为你的私钥设置一个密码。为了自动化脚本方便,你也可以直接留空(按两次回车)。

配置完成后,公钥 oci_api_key_public.pem 和私钥 oci_api_key.pem 已经生成在 ~/.oci/ 目录下。

最后也是最关键的一步:上传公钥。

  1. 在终端中,显示你的公钥内容并复制它:Bashcat ~/.oci/oci_api_key_public.pem 复制从 -----BEGIN PUBLIC KEY----------END PUBLIC KEY----- 的所有内容。
  2. 回到 OCI 控制台的 用户设置 页面,点击左侧的 API 密钥
  3. 点击 添加 API 密钥 按钮。
  4. 选择 粘贴公共密钥,将刚才复制的内容粘贴到文本框中。
  5. 点击 添加

至此,你的 OCI-CLI 已经配置完毕,可以与你的 OCI 账户进行安全通信了。

第三步:实战 – 管理你的云主机 (VM)

现在,让我们来做点实际操作。管理 VM 最核心的两个信息是 实例的 OCID隔间的 OCID (Compartment OCID)。

1. 获取隔间 OCID

你的所有资源都存放在某个隔间中。首先,我们需要找到 VM 所在隔间的 OCID。 登录 OCI 控制台 -> 身份和安全 -> ,在这里你可以看到你的所有隔间和它们的 OCID。

2. 获取 VM 实例的 OCID

运行以下命令,列出指定隔间内的所有 VM 实例。将 <your_compartment_ocid> 替换为你上一步找到的隔间 OCID。

oci compute instance list --compartment-id <your_compartment_ocid>

输出会是一个 JSON 数组,包含了该隔间下所有 VM 的详细信息。找到你想要管理的那个 VM,并记下它的 "id" (这就是实例 OCID) 和 "lifecycle-state" (生命周期状态,如 RUNNINGSTOPPED)。

3. 检查 VM 状态

如果你只想快速查看单个 VM 的状态,可以使用 get 命令:

oci compute instance get --instance-id <your_instance_ocid>

4. 开启 VM

要启动一个已停止的 VM,使用 action 命令,并将 --action 参数设置为 START

oci compute instance action --action START --instance-id <your_instance_ocid>

命令会立刻返回,但 VM 的启动需要一点时间。你可以再次使用 get 命令来确认它的状态是否变为 RUNNING

5. 关闭 VM

同理,关闭一个正在运行的 VM,只需将 --action 参数改为 STOP

oci compute instance action --action STOP --instance-id <your_instance_ocid>

这会执行正常关机。如果你需要强制关机,可以使用 SOFTSTOPRESET

进阶技巧:结合脚本实现自动化

OCI-CLI 的真正威力在于自动化。你可以将这些命令写入一个 Shell 脚本,实现一键开/关机。

例如,创建一个名为 start_my_vm.sh 的脚本:

#!/bin/bash

# 替换成你的VM实例OCID
INSTANCE_OCID="ocid1.instance.oc1.iad.xxxxxxxxxxxx"

echo "正在启动 VM: $INSTANCE_OCID ..."

# 发送启动命令
oci compute instance action --action START --instance-id $INSTANCE_OCID

echo "启动命令已发送。请稍后检查状态。"

# 等待一段时间后检查状态 (可选)
# sleep 60
# oci compute instance get --instance-id $INSTANCE_OCID --query "data.\"lifecycle-state\""

赋予脚本执行权限 (chmod +x start_my_vm.sh),之后你只需运行 ./start_my_vm.sh 即可启动你的 VM。

总结

通过本地部署 OCI-CLI,你将 OCI 的强大能力延伸到了自己的开发环境中。它不仅简化了日常的运维任务,更通过脚本化的能力为自动化工作流提供了无限可能。从今天起,告别繁琐的网页点击,拥抱高效的命令行管理方式吧!

希望这篇指南能帮助你顺利上手 OCI-CLI。如果你想探索更多功能,不妨试试 oci --help,查看所有可用的服务和命令。祝你在云端的世界里玩得开心!