第 7 章 ROSA CLI
7.1. ROSA CLI 入门 复制链接链接已复制到粘贴板!
7.1.1. 关于 ROSA CLI 复制链接链接已复制到粘贴板!
使用 Red Hat OpenShift Service on AWS (ROSA)命令行界面(CLI),使用 rosa
命令创建、更新、管理和删除 ROSA 集群和资源。
7.1.2. 设置 ROSA CLI 复制链接链接已复制到粘贴板!
使用以下步骤在安装主机上安装和配置 ROSA CLI (rosa
)。
流程
安装和配置最新的 AWS CLI (
aws
)。按照 AWS 命令行界面文档为您的操作系统安装和配置 AWS CLI。
在
.aws/credentials
文件中指定aws_access_key_id
、aws_secret_access_key
和region
。请参阅 AWS 文档中的 AWS 配置基础知识。注意您可以选择使用
AWS_DEFAULT_REGION
环境变量设置默认 AWS 区域。查询 AWS API 以验证是否已安装并配置了 AWS CLI:
aws sts get-caller-identity --output text
$ aws sts get-caller-identity --output text
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
<aws_account_id> arn:aws:iam::<aws_account_id>:user/<username> <aws_user_id>
<aws_account_id> arn:aws:iam::<aws_account_id>:user/<username> <aws_user_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
从 OpenShift Cluster Manager 上的 Downloads 页面下载您的操作系统的 ROSA CLI (
rosa
)的最新版本。 从下载的存档中提取
rosa
二进制文件。以下示例从 Linux tar 归档中提取二进制文件:tar xvf rosa-linux.tar.gz
$ tar xvf rosa-linux.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您的路径中添加
rosa
。在以下示例中,/usr/local/bin
目录包含在用户的路径中:sudo mv rosa /usr/local/bin/rosa
$ sudo mv rosa /usr/local/bin/rosa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过查询
rosa
版本来验证 ROSA CLI 是否已正确安装:rosa version
$ rosa version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
1.2.15 Your ROSA CLI is up to date.
1.2.15 Your ROSA CLI is up to date.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:为 ROSA CLI 启用 tab 自动完成功能。启用 tab 自动完成功能后,您可以按
Tab
键两次来自动完成子命令并接收命令建议:在 Linux 主机上为 Bash 启用持久性 tab 自动完成功能:
为 Bash 生成
rosa
tab 自动完成配置文件,并将其保存到/etc/bash_completion.d/
目录中:rosa completion bash > /etc/bash_completion.d/rosa
# rosa completion bash > /etc/bash_completion.d/rosa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 打开一个新的终端来激活配置。
在 macOS 主机上为 Bash 启用持久性 tab 自动完成功能:
为 Bash 生成
rosa
tab 自动完成配置文件,并将其保存到/usr/local/etc/bash_completion.d/
目录中:rosa completion bash > /usr/local/etc/bash_completion.d/rosa
$ rosa completion bash > /usr/local/etc/bash_completion.d/rosa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 打开一个新的终端来激活配置。
为 Zsh 启用持久性标签页自动完成功能:
如果没有为您的 Zsh 环境启用 tab 自动完成功能,请运行以下命令启用它:
echo "autoload -U compinit; compinit" >> ~/.zshrc
$ echo "autoload -U compinit; compinit" >> ~/.zshrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 Zsh 生成
rosa
tab 自动完成配置文件,并将其保存到功能路径中的第一个目录中:rosa completion zsh > "${fpath[1]}/_rosa"
$ rosa completion zsh > "${fpath[1]}/_rosa"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 打开一个新的终端来激活配置。
为 fish 启用持久的 tab 自动完成功能:
为 fish 生成
rosa
tab 自动完成配置文件,并将其保存到~/.config/fish/completions/
目录中:rosa completion fish > ~/.config/fish/completions/rosa.fish
$ rosa completion fish > ~/.config/fish/completions/rosa.fish
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 打开一个新的终端来激活配置。
为 PowerShell 启用持久性标签页自动完成功能:
为 PowerShell 生成
rosa
tab 自动完成配置文件,并将它保存到名为rosa.ps1
的文件中:PS> rosa completion powershell | Out-String | Invoke-Expression
PS> rosa completion powershell | Out-String | Invoke-Expression
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Source 来自您的 PowerShell 配置集中的
rosa.ps1
文件。
注意有关配置
rosa
tab 自动完成的更多信息,请参阅 帮助菜单,运行rosa completion --help
命令。
7.1.3. 配置 ROSA CLI 复制链接链接已复制到粘贴板!
使用以下命令配置 Red Hat OpenShift Service on AWS (ROSA) CLI rosa
。
7.1.3.1. login 复制链接链接已复制到粘贴板!
您可以使用多种方法通过 Red Hat OpenShift Service on AWS (ROSA) CLI (rosa
)登录您的红帽帐户。下面详细介绍这些方法。
7.1.3.1.1. 使用红帽单点登录验证 ROSA CLI 复制链接链接已复制到粘贴板!
您可以使用红帽单点登录登录到 ROSA CLI (rosa
)。红帽建议在 Red Hat Single sign-on 中使用 rosa
命令行工具,而不是使用离线身份验证令牌。
离线身份验证令牌长期存在,存储在您的操作系统上,且无法撤销。这些因素会增加整体安全风险以及未授权访问您的帐户的可能性。
或者,使用红帽单点登录方法进行身份验证会自动发送 rosa
实例,该刷新令牌有效期为 10 小时。这种独特的临时授权代码增强了安全性,并降低了未授权访问的风险。
使用红帽单点登录进行身份验证的方法不会破坏依赖于离线令牌的现有自动化。红帽建议将 服务帐户 用于自动化目的。如果您仍然需要将离线令牌用于自动化或其他目的,您可以从 OpenShift Cluster Manager API Token 页面下载 OpenShift Cluster Manager API 令牌。
使用以下方法之一验证:
- 如果您的系统有 Web 浏览器,请参阅"使用单点登录授权代码"部分的 ROSA CLI 部分来使用 Red Hat 单点登录进行身份验证。
- 如果您在没有 Web 浏览器的情况下使用容器、远程主机或其他环境,请参阅"使用单点登录代码"部分验证 ROSA CLI 部分。
- 要使用离线令牌验证 ROSA CLI,请参阅"授权使用离线令牌的 ROSA CLI"部分。
ROSA CLI (rosa
)版本 1.2.36 或更高版本支持单点登录授权。
7.1.3.1.2. 使用单点登录授权代码验证 ROSA CLI 复制链接链接已复制到粘贴板!
要使用 Red Hat 单点登录授权代码登录到 ROSA CLI (
rosa
),请运行以下命令:语法
rosa login --use-auth-code
$ rosa login --use-auth-code
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行此命令会将您重定向到 Red Hat Single login-on 登录。使用您的 Red Hat 登录或电子邮件登录。
Expand 表 7.1. 从父命令继承的可选参数 选项 定义 --help
显示此命令的帮助信息。
--debug
启用调试模式。
要切换帐户,请从 https://sso.redhat.com 注销,并在尝试再次登录前在终端中运行
rosa logout
命令。
7.1.3.1.3. 使用单点登录设备代码验证 ROSA CLI 复制链接链接已复制到粘贴板!
如果您在没有 Web 浏览器的情况下使用容器、远程主机和其他环境,您可以使用红帽单点登录设备代码来保护身份验证。要做到这一点,您必须使用具有 Web 浏览器批准登录的第二个设备。
ROSA CLI (rosa
)版本 1.2.36 或更高版本支持单点登录授权。
要使用 Red Hat 单点登录设备代码登录到 ROSA CLI (
rosa
),请运行以下命令:语法
rosa login --use-device-code
$ rosa login --use-device-code
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行此命令会将您重定向到红帽 SSO 登录,并提供登录代码。
Expand 表 7.2. 从父命令继承的可选参数 选项 定义 --help
显示此命令的帮助信息。
--debug
启用调试模式。
要切换帐户,请从 https://sso.redhat.com 注销,并在尝试再次登录前在终端中运行
rosa logout
命令。
7.1.3.1.4. 使用离线令牌验证 ROSA CLI 复制链接链接已复制到粘贴板!
登录到您的红帽帐户,将凭据保存到 rosa
配置文件。
要将离线令牌用于自动化目的,您可以从 OpenShift Cluster Manager API Token 页面下载 OpenShift Cluster Manager API 令牌。要将服务帐户用于自动化目的,请参阅 Service Accounts 页面。
红帽建议将服务帐户用于自动化目的。
要使用红帽离线令牌登录到 ROSA CLI (
rosa
),请运行以下命令:语法
rosa login [arguments]
$ rosa login [arguments]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表 7.3. 参数 选项 定义 --client-id
OpenID 客户端标识符(字符串)。默认:
cloud-services
--client-secret
OpenID 客户端 secret (字符串)。
--insecure
启用与服务器的不安全通信。这禁用 TLS 证书和主机名验证。
--scope
OpenID 范围(字符串)。如果使用这个选项,它将替换默认的范围。这可以重复多次以指定多个范围。默认:
openid
--token
访问或刷新令牌(字符串)。
--token-url
OpenID 令牌 URL (字符串)。默认:
https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
Expand 表 7.4. 从父命令继承的可选参数 选项 定义 --help
显示此命令的帮助信息。
--debug
启用调试模式。
--profile
指定来自您的凭证文件中的 AWS 配置集(字符串)。
7.1.3.2. logout 复制链接链接已复制到粘贴板!
从 rosa
注销。注销也会移除 rosa
配置文件。
语法
rosa logout [arguments]
$ rosa logout [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
7.1.3.3. 验证权限 复制链接链接已复制到粘贴板!
验证创建 ROSA 集群所需的 AWS 权限是否已正确配置:
语法
rosa verify permissions [arguments]
$ rosa verify permissions [arguments]
此命令只验证没有使用 AWS 安全令牌服务 (STS) 的集群的权限。
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--region |
在其中运行命令的 AWS 区域(字符串)。这个值会覆盖 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
验证 AWS 权限是否已正确配置:
rosa verify permissions
$ rosa verify permissions
验证 AWS 权限是否在特定区域中正确配置:
rosa verify permissions --region=us-west-2
$ rosa verify permissions --region=us-west-2
7.1.3.4. 验证配额 复制链接链接已复制到粘贴板!
验证您的默认区域是否正确配置了 AWS 配额。
语法
rosa verify quota [arguments]
$ rosa verify quota [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
--region |
在其中运行命令的 AWS 区域(字符串)。这个值会覆盖 |
--profile | 指定来自您的凭证文件中的 AWS 配置集(字符串)。 |
例子
验证默认区域是否正确配置了 AWS 配额:
rosa verify quota
$ rosa verify quota
验证 AWS 配额是否在特定区域中正确配置:
rosa verify quota --region=us-west-2
$ rosa verify quota --region=us-west-2
7.1.3.5. 下载 rosa 复制链接链接已复制到粘贴板!
下载 rosa
CLI 的最新兼容版本。
下载 rosa
后,提取存档的内容并将其添加到您的路径中。
语法
rosa download rosa [arguments]
$ rosa download rosa [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
7.1.3.6. 下载 oc 复制链接链接已复制到粘贴板!
下载 OpenShift Container Platform CLI (oc
) 的最新版本。
下载 oc
后,您必须提取存档的内容并将其添加到您的路径中。
语法
rosa download oc [arguments]
$ rosa download oc [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
示例
下载 oc
客户端工具:
rosa download oc
$ rosa download oc
7.1.3.7. 验证 oc 复制链接链接已复制到粘贴板!
验证 OpenShift Container Platform CLI (oc
)是否已正确安装。
语法
rosa verify oc [arguments]
$ rosa verify oc [arguments]
选项 | 定义 |
---|---|
--help | 显示此命令的帮助信息。 |
--debug | 启用调试模式。 |
示例
验证 oc
客户端工具:
rosa verify oc
$ rosa verify oc
7.1.4. 使用 Bash 脚本 复制链接链接已复制到粘贴板!
以下是如何将 Bash 脚本与 Red Hat OpenShift Service on AWS (ROSA) CLI 搭配使用的示例工作流,它演示了如何在 AWS (ROSA) CLI 中使用 Bash 脚本。
先决条件
确保 AWS 凭证已作为以下选项之一可用:
- AWS 配置集
-
环境变量 (
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
)
流程
使用来自 Red Hat OpenShift Cluster Manager 的 Red Hat OpenShift Cluster Manager 离线令牌 初始化
rosa
:rosa init --token=<token>
$ rosa init --token=<token>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 ROSA 集群:
rosa create cluster --cluster-name=<cluster_name>
$ rosa create cluster --cluster-name=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加身份提供程序 (IDP):
rosa create idp --cluster=<cluster_name> --type=<identity_provider> [arguments]
$ rosa create idp --cluster=<cluster_name> --type=<identity_provider> [arguments]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
dedicated-admin
用户:rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
$ rosa grant user dedicated-admin --user=<idp_user_name> --cluster=<cluster_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.5. 更新 ROSA CLI 复制链接链接已复制到粘贴板!
更新至 ROSA CLI 的最新兼容版本(rosa
)。
流程
确认新版本的 ROSA CLI (
rosa
)可用:rosa version
$ rosa version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
1.2.12 There is a newer release version '1.2.15', please consider updating: https://mirror.openshift.com/pub/openshift-v4/clients/rosa/latest/
1.2.12 There is a newer release version '1.2.15', please consider updating: https://mirror.openshift.com/pub/openshift-v4/clients/rosa/latest/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载 ROSA CLI 的最新兼容版本:
rosa download rosa
$ rosa download rosa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将名为
rosa114.tar.gz
的存档下载到当前目录中。文件的确切名称取决于您的操作系统和系统架构。提取存档内容:
tar -xzf rosa-linux.tar.gz
$ tar -xzf rosa-linux.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将提取的文件移至您的路径中来安装 ROSA CLI 的新版本。在以下示例中,
/usr/local/bin
目录包含在用户的路径中:sudo mv rosa /usr/local/bin/rosa
$ sudo mv rosa /usr/local/bin/rosa
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证是否安装了新版本的 ROSA。
rosa version
$ rosa version
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
1.2.15 Your ROSA CLI is up to date.
1.2.15 Your ROSA CLI is up to date.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow