本文详细介绍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

(弃) Keystone CLI_可选命令详解的更多相关文章

  1. Cypress系列(101)- intercept() 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 使用该命令在网络层管理 HTTP ...

  2. linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  3. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  4. DOS命令详解

    DOS命令详解 命令 \? 可以进入命令帮助 1.md命令创建目录. MKDIR [drive:]pathMD [drive:]path 如果命令扩展被启用,MKDIR 会如下改变: 如果需要,MKD ...

  5. scp命令详解

    \ svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令+scp命令详解   名称:cp 使用权限: ...

  6. linux yum命令详解-转

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  7. 【转】linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  8. Linux下的压缩zip,解压缩unzip命令详解及实例

    实例:压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip ====================== ...

  9. tar 解压缩命令详解

    今天对目录及其文件进行压缩:/usr/local/test# tar -cvf /usr/local/auto_bak/test.tar /usr/local/test 仅打包,不压缩 # tar - ...

随机推荐

  1. Java Hex 16进制的 byte String 转换类

    package mobi.dzs.android.util; import java.util.Locale; /** * 16进制值与String/Byte之间的转换 * @author Jerry ...

  2. ubuntu mysql 远程连接问题解决方法

    在shell下输入mysql -uroot -p是可以登录的,所以问题应该是mysql不允许root用户远程登录的问题,于是通过输入下面命令: GRANT ALL PRIVILEGES ON *.*  ...

  3. Netty高性能之Reactor线程模型

    Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用 ...

  4. java 多线程 25 :线程和线程组的异常处理

    线程中出现异常 从上面代码可以看出来处理线程的异常 设置异常的两种方式 1.全局异常,也是静态异常,是个静态方法 , 类.setDefaultUncaughtExceptionHandler() 2. ...

  5. Docker考前突击

    dockerfile 介绍 镜像(Image)     容器(Container)     仓库(Repository)

  6. Node.js学习笔记(6)--异步变同步

    说明(2017-5-3 14:59:03): 1. 异步变同步: var fs = require("fs"); var documents = []; fs.readdir(&q ...

  7. MAC层作用

    对于无线传感网 MAC,顾名思义,就是介质访问控制,是用来控制无线介质的访问的,由于无线传输是共享空中资源的,必然存在多个无线传感器节点对传输介质的争用,MAC层协议就是用来解决这个问题的,包括冲突的 ...

  8. burpsuite两个变量的爱情故事

    抓包的时候在攻击类型处选择[Cluster bomb] 在payload type这里设置类型为[simple list] 第一个是账号 第二个是密码 分批加载即可

  9. BeautifulSoup 使用select方法详解(通过标签名,类名, id,组合,属性查找)

    import requestsfrom bs4 import BeautifulSoup blslib="html5lib"user_agent="Mozilla/5.0 ...

  10. spring data jpa的update操作

    简介 使用jpa进行update操作主要有两种方式: 1.调用保存实体的方法 1)保存一个实体:repository.save(T entity) 2)保存多个实体:repository.save(I ...