设置CLI和API环境

在通过 API 或 CLI 创建 IBM® Storage Ceph® as a Service 之前,请先配置您的环境。

常规先决条件

  1. 请设置您的账户,以便访问 IBM Storage Ceph as a Service。 请确保您的账户已 升级为付费账户

  2. 请确保您手边有部署所需的本地端点列表。

    您可以将端点设置为环境变量。

CLI 先决条件

在使用 CLI 之前,必须安装 IBM Cloud CLI 和 IBM Storage Ceph as a Service CLI 插件。

在企业内部部署的 IBM Storage Ceph as a Service 上使用 CLI 之前,请确保运行 CLI 的环境已连接到企业内部网络。

  1. 安装 IBM Cloud 命令行界面

  2. 安装 IBM Storage Ceph as a Service CLI 插件 software-defined-storage

    ibmcloud plugin install software-defined-storage
    

    IBM Storage Ceph as a Service CLI操作也使用别名 sds。 要了解如何使用 CLI 命令,可以运行:

    ibmcloud sds --help
    ibmcloud sds volume-create --help
    ibmcloud sds host-create --help
    

通过API端点访问CLI

要设置CLI以使用API端点,请按照以下步骤操作:

如果您需要下载 IBM Cloud CLI 和相关插件,您必须能够访问它们所在的公共资源库。

  1. 确保核心 IBM Cloud CLI 和 IBM Storage Ceph as a Service 插件更新到最新版本:

    ibmcloud update
    
    ibmcloud plugin update software-defined-storage
    
  2. 要指定一个API端点,请输入以下命令:

    ibmcloud login -a https://cloud.ibm.com
    

    有关CLI选项的详细信息,请参阅 ibmcloud登录

设置IAM令牌

在通过命令行界面(CLI)创建 IBM Storage Ceph as a Service 之前,您必须获取一个IAM令牌,将端点存储为变量,并确认您拥有对 IBM Storage Ceph as a Service 服务的访问权限。

IAM_TOKEN=$(ibmcloud iam oauth-tokens --output json | jq -r '.iam_token)

API 先决条件

在通过 API 创建 IBM Storage Ceph as a Service 之前,您必须获取一个 IAM 令牌,将端点存储为变量,并确认您拥有对 CephaaS API 服务的访问权限。

以下示例使用 us-south 区域终端。

步骤 1:将 API 密钥存储为变量

运行以下命令将帐户的 API 密钥存储在环境变量中。 如果您没有 API 密钥,请参阅创建 API 密钥

apikey="<YOUR_API_KEY>"

步骤 2:获取 IBM Identity and Access Management (IAM) 令牌

运行以下命令,使用 JSON 处理工具 jq 获取并解析 IAM 令牌。 可以修改此命令以使用其他解析工具,也可以除去命令的最后一部分(如果希望手动解析令牌)。

IAM_TOKEN=`curl -k -X POST \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --header "Accept: application/json" \
  --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
  --data-urlencode "apikey=$apikey" \
  "https://iam.cloud.ibm.com/identity/token"  |jq -r '(.token_type + " " + .access_token)'`

要查看 IAM 令牌,请运行 echo $IAM_TOKEN。 结果应该类似于以下内容:

Bearer <your token>

Authorization 头需要令牌以“Bearer”开头。 如果结果不包含“Bearer”,请更新 IAM_TOKEN 变量以包含该值。 这些示例假定 IAM_TOKEN 中包含“Bearer”。

IAM 令牌的有效期最长为 60 分钟,且该时长可能会发生变化。 令牌到期以后,必须生成新令牌。 使用属性 expires_in 表示刚刚创建的 IAM 令牌的过期时间。

步骤 3:将 API 端点存储为变量

$sds_endpoint 是一个环境变量,指向 IBM Storage Ceph as a Service 配置时提供的端点。 它以 URL 的形式存在。 例如,https://sds-cephaas.<cephaas-instance-id>.software-defined-storage.appdomain.cloud:{port number}。 运行以下命令将 API 端点存储在变量中,以便日后可以在会话中复用。

例如:

sds_api_endpoint="https://sds-cephaas.936481b2-379d-4ca6-94ed-4dc1911d749f.software-defined-storage.appdomain.cloud:33173"

要验证该变量是否已保存,请运行 echo $sds_endpoint,并确保响应内容不为空。

第 4 步:确认您拥有 API 访问权限

现在您已经拥有终端和IAM令牌,请通过 API参考中 描述的API之一验证您的API访问权限。

如果遇到意外结果,请在 --verbose 命令后面添加 curl(调试)标志,以获取详细的日志记录信息。