climc 认证
介绍Climc命令行工具认证配置。
认证配置
climc 请求云平台后端服务的流程如下:
- 通过配置信息,使用用户名密码从 keystone 获取 token
- token 中包含了后端服务的 endpoint 地址
- climc 将对应资源的 CURD 请求发往所属的后端服务
所以在操作资源前,我们可以通过环境变量告诉 climc 想要操作的云平台和认证信息。
目前climc支持三种认证方式:
- 通过用户名/密码认证
- token认证 (目前cloudshell使用这种认证方式)
- 通过Access Key/Secret认证
注意
- 由于cloudshell在启动时已经注入了token环境变量, 因此不能看到token生成的过程,若需要查看token生成过程,需要换另外两种认证方式
- AccessKey认证方式类似于公有云的认证签名, 目前仅python和go的sdk支持, 若用其他语言接入需要自行实现签名算法
通过用户名/密码认证
控制节点认证配置
在控制节点上可直接通过以下命令认证配置。
# 获取环境变量
$ ocadm cluster rcadmin
export OS_AUTH_URL=https://192.168.0.246:5000/v3
export OS_USERNAME=sysadmin
export OS_PASSWORD=3hV3***84srk
export OS_PROJECT_NAME=system
export YUNION_INSECURE=true
export OS_REGION_NAME=region0
export OS_ENDPOINT_TYPE=publicURL
# 认证环境变量
$ source <(ocadm cluster rcadmin)
注意: 如果执行 climc 时出现 Error: Missing OS_AUTH_URL 的错误提示时,请重新执行 source <(ocadm cluster rcadmin) 命令。
非控制节点认证配置
在非控制节点做认证配置上首先需要在对应的控制节点上执行ocadm cluster rcadmin;
将输出的认证信息保存到本地的文件中,通过source命令认证配置。
以下为用户名/密码认证的配置文件模板,通过OS_USERNAME, OS_DOMAIN_NAME, OS_PASSWORD, OS_PROJECT_NAME, OS_PROJECT_DOMAIN等字段指定用户的信息和项目的信息。
# 在控制节点上获取认证所需要的配置信息。
$ ocadm cluster rcadmin
export OS_AUTH_URL=https://192.168.0.246:5000/v3
export OS_USERNAME=sysadmin
export OS_PASSWORD=3hV3***84srk
export OS_PROJECT_NAME=system
export YUNION_INSECURE=true
export OS_REGION_NAME=region0
export OS_ENDPOINT_TYPE=publicURL
# 将上述认证信息保存到文件中,方便 source 使用
$ cat <<EOF > ~/test_rc_admin
# keystone 认证地址
export OS_AUTH_URL=https://192.168.0.246:5000/v3
# 用户名
export OS_USERNAME=sysadmin
# 用户密码
export OS_PASSWORD=3hV3***84srk
# 用户所属项目名称
export OS_PROJECT_NAME=system
# 允许 insecure https 连接
export YUNION_INSECURE=true
# 对应的 region
export OS_REGION_NAME=region0
# endpoint 类型为 public
export OS_ENDPOINT_TYPE=publicURL
EOF