本文详细介绍keystone客户端命令行界面(CLI)keystone的可选子命令。关于keystone客户端命令行工具keystone命令的子命令和选项列表,请参考前文《解读keystone命令行工具(1)选项与子命令概况》。
下文中,方括号“[ ]”内的内容是可选的,尖括号“< >”内的内容是必需的,方括号内部的尖括号代表当可选内容出现时,“< >”内的内容必须出现。
下文直接使用keystone CLI命令,默认认为用户已经配置好每次会话的环境变量,因此使用相关命令不需要设置身份验证参数。关于keystone命令的参数介绍和环境变量配置,请参考前文《解读keystone命令行工具(1)选项与子命令概况》。
本文中的命令可以通过
keystone help <command>
查看官方说明
本文介绍的命令包括:
keystone bootstrap command
keystone catalog command
keystone discover command
keystone ec2-credentials-create command
keystone ec2-credentials-delete command
keystone ec2-credentials-get command
keystone ec2-credentials-list command
keystone endpoint-create command
keystone endpoint-delete command
keystone endpoint-get command
keystone endpoint-list command
keystone password-update command
keystone role-create command
keystone role-delete command
keystone role-get command
keystone role-list command
keystone service-create command
keystone service-delete command
keystone service-get command
keystone service-list command
keystone tenant-create command
keystone tenant-delete command
keystone tenant-get command
keystone tenant-list command
keystone tenant-update command
keystone token-get command
keystone user-create command
keystone user-delete command
keystone user-get command
keystone user-list command
keystone user-password-update command
keystone user-role-add command
keystone user-role-list command
keystone user-role-remove command
keystone user-update command
归纳起来包括以下几个方面:
1.bootstrap, catalog, discover,
2.修改当前用户密码,获取当前用户token
3.ec2证书的列表、查看、添加和删除
4.终端的列表、查看、添加和删除
5.角色的列表、查看、添加和删除
6.服务的列表、查看、添加和删除
7.租户的列表、查看、添加、删除和更新
8.用户的列表、查看、添加、删除、更新和更改密码
9.用户与角色:用户添加、删除角色和列表用户所有角色
bootstrap指令
bootstrap “引导”指令集中地完成从用户、角色、项目(租户)创建到建立角色和用户以及角色和项目之间映射关系整个过程。
用法
keystone bootstrap [--user-name <user-name>] --pass <password> [--role-name <role-name>] [--tenant-name <tenant-name>]
参数介绍
--user-name 后接要创建的用户名,默认“admin”
--pass 后接要创建用户的密码
--role-name 新建并与本指令中创建的用户进行绑定的角色名称,默认“admin”
--tenant-name 新建一个包含本指令中新建用户的项目,默认"admin"
catalog指令
列出服务目录,可能会被服务过滤。
用法
keystone catalog [--service <service-type>]
参数介绍
--service 希望返回的服务类型,可选值:volume(cinder), ec2(ec2), image(glance), orchestration(heat), cloudformation(heat-cfn), identity(keystone), network(neutron), compute(nova), object-store(swift)等。
返回值介绍
查看特定类型的服务时,本指令一次只能查看一个服务,当服务目录中存在目标类型的服务时,将会返回目标服务的adminURL, id, internalURL, publicURL以及所属region。
discover指令
给出keystone服务器、支持的API版本以及扩展等信息。
用法
keystone discover
参数介绍
无参数
返回值介绍
返回keystone服务器的地址,同时返回该服务器支持的API版本,以及已经安装的一些扩展API。
ec2-credentials-create
创建EC-2兼容的身份证明(credential)
用法
keystone ec2-credentials-create [--user-id <user-id>] [--tenant-id <tenant-id>]
参数介绍
--user-id <user-id> 创建身份证明的用户ID,如果未指定,则默认为当前完成验证的用户
--tenant-id <tenant-id> 创建身份证明的项目ID,如果未指定,则默认为当前完成验证的项目
ec2-credentials-delete
删除EC-2兼容的credential
用法
keystone ec2-credentials-delete [--user-id <user-id>] --access <access-key>
参数介绍
--user-id <user-id> 用户ID
--access <access-key> 访问key
ec2-credentials-get
显示EC-2兼容的credential
用法
keystone ec2-credentials-get [--user-id <user-id>] --access <access-key>
参数介绍
--user-id <user-id> 用户ID
--access <access-key> 访问key
ec2-credentials-list
显示一个用户所有的EC-2兼容身份证明
用法
keystone ec2-credentials-list [--user-id <user-id>]
参数说明
--user-id <user-id> 用户ID
endpoint-create指令
创建一个与服务相关联的终端。
用法
keystone endpoint-create [--region <endpoint-region>] --service <service> --publicurl <public-url> [--adminurl <admin-url>] [--internalurl <internal-url>]
参数介绍
--region <endpoint-region> 终端所属的region
--service <service>, --service-id
<service>, --service_id <service> 与该终端关联的服务名称或ID
--publicurl <public-url> 终端的公共URL
--adminurl <admin-url> 终端的管理URL
--internalurl <internal-url> 终端的内部URL
endpoint-delete指令
删除一个服务终端
用法
keystone endpoint-delete <endpoint-id>
参数介绍
<endpoint-id> 要删除的终端ID
endpoint-get指令
通过特定的服务类型或属性搜索终端
用法
keystone endpoint-get --service <service-type> [--endpoint-type <endpoint-type>] [--attr <service-attribute>] [--value <value>]
参数介绍
--service <service-type> 要查看的服务类型
--endpoint-type <endpoint-type> 要查看的终端类型
--attr <service-attribute> 要查看的服务匹配的属性
--value <value> 要匹配的值
endpoint-list指令
列出所有已配置的服务终端
用法
keystone endpoint-lis
参数介绍
无参数
password-update指令
更新当前用户的密码
用法
keystone password-update [--current-password <current-password>] [--new-password <new-password>]
参数介绍
--current-password <current-password> 当前密码,对应于--os-password中设置的或者环境变量OS_PASSWORD
--new-password <new-password> 新密码
role-create指令
新建角色
用法
keystone role-create --name <role-name>
参数介绍
--name <role-name> 新建角色的名称
role-delete指令
删除角色
用法
keystone role-delete <role>
参数介绍
<role> 删除角色的名称或ID
role-get指令
查看角色详细信息
用法
keystone role-get <role>
参数介绍
<role> 目标角色的名称或ID
role-list指令
列出所有角色
用法
keystone role-list
参数介绍
无参数
service-create指令
向服务目录中添加服务
用法
keystone service-create --name <name>
--type <type>
[--description <service-description>]
参数介绍
--name <name> 新服务的名称
--type <type> 新服务的类型
--description <service-description> 对新服务的描述
service-delete指令
删除一个服务
用法
keystone service-delete <service>
参数介绍
<service> 删除目标的名称或ID
service-get指令
显示指令服务细节
用法
keystone service-get <service>
参数介绍
<service> 查看目标的名称或ID
service-list指令
列出当前服务目录中所有的服务
用法
keystone service-list
参数介绍
无参数
tenant-create指令
新建项目
用法
keystone tenant-create --name <tenant-name> [--description <tenant-description>] [--enabled <true|false>]
参数介绍
--name <tenant-name> 新建项目的名称
--description <tenant-description> 新建项目的描述
--enabled <true|false> 该新建项目的启用状态
tenant-delete指令
删除项目
用法
keystone tenant-delete <tenant>
参数说明
<tenant> 删除目标的名称或ID
tenant-get指令
查看项目细节
用法
keystone tenant-get <tenant>
参数说明
<tenant> 删除目标的名称或ID
tenant-list指令
列出所有项目
用法
keystone tenant-list
参数介绍
无参数
tenant-update指令
更新项目的名称,描述和启用状态
用法
keystone tenant-update [--name <tenant_name>] [--description <tenant-description>] [--enabled <true|false>] <tenant>
参数介绍
--name <tenant_name> 新的项目名称
--description <tenant-description> 新的项目描述
--enabled <true|false> 启用状态
<tenant> 要跟新的项目名称或ID
token-get指令
显示当前用户的token
用法
keystone token-get [--wrap <integer>]
参数介绍
--wrap <integer> 将PKI令牌打包成某一特定长度,置0时禁用。
user-create指令
新建用户
用法
keystone user-create --name <user-name> [--tenant <tenant>] [--pass [<pass>]] [--email <email>] [--enabled <true|false>]
参数介绍
--name <user-name> 新建用户名
--tenant <tenant>, --tenant-id 用户所属项目
<tenant>
--pass [<pass>] 新建用户密码
--email <email> 用户邮箱
--enabled <true|false> 该账户的启用状态
user-delete指令
删除用户
用法
keystone user-delete <user>
参数介绍
<user> 删除目标的名称或ID
user-get指令
显示用户细节
用法
keystone user-get <user>
参数介绍
<user> 查看目标的名称或ID
user-list指令
列出所有用户
用法
keystone user-list [--tenant <tenant>]
参数介绍
--tenant <tenant>, --tenant-id
<tenant> 列出该指定项目中的用户,不指定的话将会列出全部用户
user-password-update指令
更新任一用户的密码
用法
keystone user-password-update [--pass <password>] <user>
参数说明
--pass <password> 新的密码
<user> 要更新密码的用户名或ID
user-role-add指令
向一个用户添加一个角色
用法
keystone user-role-add --user <user>
--role <role>
[--tenant <tenant>]
参数说明
--user <user>, --user-id <user>, -- 用户名或ID
user_id <user>
--role <role>, --role-id <role>, -- 角色名或ID
role_id <role>
--tenant <tenant>, --tenant-id 租户名或ID
<tenant>
所有的domain之间的role是不能重名的,因此在一个domain之内role也是不能重名的。同一个用户可以属于多个项目,同一个项目也能够包括多个用户,同时,一个用户在不同的项目中使用相同的角色是允许的,比如(userA, tenantA, roleA) 和( userA, tenantA, roleB)都是合法的。当然,在同一个项目中拥有多个角色或在不同的项目中拥有不同的角色必然也是合法的。
user-role-list指令
显示一个用户已经获得的所有角色
用法
keystone user-role-list [--user <user>]
[--tenant <tenant>]
参数介绍
--user <user>, --user-id <user> 指定用户名或ID
--tenant <tenant>, --tenant-id 只显示特定项目下指定用户拥有的角色
<tenant>
当使用该命令时的参数"--tenant"接的是用户所在的项目时(如项目A),返回用户的所有角色,包括用户在其他项目中获得的角色;当"--tenant"所接的参数不是用户所在的默认项目时(如项目B),只会列出用户在这个项目B中的角色。
user-role-remove指令
移除某个用户的某个角色
用法
keystone user-role-remove --user <user>
--role <role> [--tenant <tenant>]
参数介绍
--user <user>, --user-id <user>, --
user_id <user> 删除角色的目标用户
--role <role>, --role-id <role>, --
role_id <role> 删除的角色
--tenant <tenant>, --tenant-id
<tenant> 用户所属的项目
user-update指令
更新用户的名称,邮箱和启用状态
用法
keystone user-update [--name <user-name>] [--email <email>] [--enabled <true|false>] <user>
参数介绍
--name <user-name> 更新后的用户名
--email <email> 更新后的邮箱
--enabled <true|false> 更新后的启用状态
<user> 更新的目标用户名或ID