返回介绍

用 OpenStack RC 文件设置环境变量

发布于 2025-01-26 00:51:49 字数 2514 浏览 0 评论 0 收藏 0

用 OpenStack RC 文件设置环境变量

为了给 OpenStack 命令行客户端提供所需的环境变量,您必须创建 OpenStack RC 文件,或者说叫 openrc.sh 文件。如果您安装的时候有这个文件,您可以在 OpenStack 控制台用任意一个用户下载到这个文件。这个针对某个 project 有效地文件包含了所有 OpenStack 服务所需的关键信息。

当您手动载入这个文件时,里面的环境变量配置便会加载进当前 Shell 中。这些环境变量连接了本地的 OpenStack 客户端和在云上的 OpenStack 服务。

注意: 在 Microsoft Windows 中,我们并不会用环境变量文件导入环境变量。环境变量一般都是在 System Properties 对话框中的 Advaned 选项卡中设置的。

下载和载入 OpenStack RC 文件

登录 OpenStack 控制台,选择对应的 Project,然后依次点击“Compute”和“Access&Security”。

在 API Access 选项卡中,点击 Download OpenStack RC 文件,把文件下载下来。这个文件名的格式是“ PROJECT-openrc.sh ”,此处的 PROJECT 便是你下载时所在的那个 Project。

将这份 PROJECT-openrc.sh 文件复制到您想运行 OpenStack 命令的机器上。(比如您想用 glance 工具从某机器上上传一个图片到云,那就把这个文件复制到这机器上。)

然后载入这个文件,请看下面这个例子,假定我们要设置 demo 这个 Project。

$ source demo-openrc.sh

当系统要求您输入密码时,您要输入刚刚下载这个文件时登录进 OpenStack 那个用户的密码。

手动创建和载入 OpenStack RC 文件

此外,如果您无法在 OpenStack 控制台处下载到 PROJECT-openrc.sh,您可以按照下面的教程手动创建一个。

在文本编辑器中,创建一个叫 PROJECT-openrc.sh 的文件,添加如下认证信息。

export OS_USERNAME=username
export OS_PASSWORD=password
export OS_TENANT_NAME=projectName
export OS_AUTH_URL=https://identityHost:portNumber/v2.0
# 以下内容也可以省略
export OS_TENANT_ID=tenantIDString
export OS_REGION_NAME=regionName
export OS_CACERT=/path/to/cacertFile

在你想运行 OpenStack 命令的 shell 中加载这个文件。本例中,我们为 admin 这个 project 加载了 admin-openrc.sh。

$ source admin-openrc.sh

注意:
如果您操作的时候使用了本例中的 RC 文件,在运行 OpenStack 命令的时候系统就不会再要求您输入密码了,因为密码已经用明文存储在这个 RC 文件中了。请给此文件设置一个合适的权限来避免安全问题。您也可以在删除该 RC 文件中有关密码的条目,在运行 OpenStack 时使用“ --password ”参数,这样系统就会在执行命令时向您询问密码了。

注意:
如果在 OS_AUTH_URL 中设置了使用 HTTPS 协议的话,您必须设置 OS_CACERT 这个环境变量,因为 TLS(HTTPS)服务器认证过程中需要用到这个环境变量。该环境变量所指向的证书在我们认证服务器证书时会用到。

让环境变量值失效

如果您使用 OpenStack 命令,您可以用命令中的参数覆盖掉某些环境变量值,这些可选参数可以用各个客户端的 help 命令查询到。例如,您可以在使用 openstack 命令时,用添加参数的方法让环境变量 PROJECT-openrc.sh 中的 OS_PASSWORD 失效:

$ openstack --os-password PASSWORD service list

本例中 PASSWORD 是您的密码。

您在用任何命令行工具与 OpenStack 交互时都需要提供用户名和密码。这些用户名和密码信息可以通过不同方法来指定,比如,用环境变量文件或者是命令参数。不过这两种方法都不安全。

举例:如果您在用命令行客户端时用 --os-password 写了密码。那任何有权限登录您电脑的人都可以用 ps 命令看见密码。

为了避免密码被别人看见,请考虑使用交互式的方式提供密码。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文