1. 前言

在生产环境中,使用openstack已经有1年多的时间了,苦于一直没有时间,加上工作带来的懒惰,一直迟迟没有对openstack方面的知识做个总结,趁着年底,把过去一年多在生产环境中所遇到的一些常见运维操作做个总结。需要说明的是,相关的操作,基本都建立在openstack的官方文档和帮助,所以最好的方式莫过于看官方文档,此处只作为抛砖引玉之用,望须知。

2. 关于keystone

keystone是openstack中负责认证授权的服务,主要负责两方面的工作:1. 用户认证授权,2.目录catalog服务。总体而言,keystone承担着openstack中的注册表服务,即所有的用户都需要到keystone中注册其信息,所有openstack的服务,都需要将其catalog信息注册到keystone,以方便组件之间相互调用。

3. keystone开放用户

openstack中最小的资源单位集合是租户,即tenant,tenant是一系列资源的集合,包括计算资源,网络资源和存储资源,tenant一般来说是指公司,部门,或者个人,比如某个公司去申请阿里云,某个部门申请使用内部的openstack私有云资源等等,作为openstack云管理员,为用户开放访问权限,是一项基本的工作。此外tenant会得到一个默认计算的quota,存储的quota以及网络的quota,关于quota的调整,参考后续的博客。如下为创建user的过程,主要分为三个阶段:1.用户创建,2. 租户创建,3. 将用户加入到租户和角色

3.1 创建用户

[root@controller ~]# keystone user-create --name user1 --pass password --email user1@example.com --enabled true
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |        user1@example.com         |
| enabled  |               True               |
|    id    | ce398fc13d224c63b9d90b3cc2b6d464 |        #用户的id号
|   name   |              user1               |
| username |              user1               |
+----------+----------------------------------+查看用户列表:
[root@controller ~]# keystone user-list
+----------------------------------+---------+---------+---------------------+
|                id                |   name  | enabled |        email        |
+----------------------------------+---------+---------+---------------------+
| bc5e46fc4204497185ae3ca6f8b7affb |  admin  |   True  |  admin@example.com  |
| ac86694e3053492f921e19aca9c9d646 |  cinder |   True  |  cinder@example.com |
| 0ed4f1c5af2a496a8d56e256d966ef9d |   demo  |   True  |   demo@example.com  |
| 0922aae9b7bf4f80a7811fd0c7db49c6 |  glance |   True  |  glance@example.com |
| 053262aa44ce430d91465417f045cead | neutron |   True  | neutron@example.com |
| b709f56c61114ce78768b34d76d5af90 |   nova  |   True  |   nova@example.com  |
| ce398fc13d224c63b9d90b3cc2b6d464 |  user1  |   True  |  user1@example.com  |        #刚创建的user,id号,后续需要使用
+----------------------------------+---------+---------+---------------------+查看用户具体信息:
[root@controller ~]# keystone user-get ce398fc13d224c63b9d90b3cc2b6d464
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |        user1@example.com         |
| enabled  |               True               |
|    id    | ce398fc13d224c63b9d90b3cc2b6d464 |
|   name   |              user1               |
| username |              user1               |
+----------+----------------------------------+

小结: 用户管理相关操作包括:user-create,user-delete,user-update,user-list,user-get即增删改查,以及user-password-update修改用户密码等操作,其他的操作如tenant,role,service和endpoint相类似,举一反三。


3.2 创建租户

[root@controller ~]# keystone tenant-create --name companyA --description "Project For ComputeA" --enabled true
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |       Project For ComputeA       |
|   enabled   |               True               |
|      id     | 7ff1dfb5a6f349958c3a949248e56236 |        #tenant的id号,后续使用使用
|     name    |             companyA             |
+-------------+----------------------------------+查看tenant列表:
[root@controller ~]# keystone tenant-list
+----------------------------------+----------+---------+
|                id                |   name   | enabled |
+----------------------------------+----------+---------+
| 842ab3268a2c47e6a4b0d8774de805ae |  admin   |   True  |
| 7ff1dfb5a6f349958c3a949248e56236 | companyA |   True  |        #刚所创建的tenant
| 10d1465c00d049fab88dec1af0f56b1b |   demo   |   True  |
| 3b57a14f7c354a979c9f62b60f31a331 | service  |   True  |
+----------------------------------+----------+---------+查看tenant的详细信息:
[root@controller ~]# keystone tenant-get 7ff1dfb5a6f349958c3a949248e56236
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |       Project For ComputeA       |
|   enabled   |               True               |
|      id     | 7ff1dfb5a6f349958c3a949248e56236 |
|     name    |             companyA             |
+-------------+----------------------------------+

3.3 用户与租户角色关联

查看租户的id号
[root@controller ~]# keystone tenant-list
+----------------------------------+----------+---------+
|                id                |   name   | enabled |
+----------------------------------+----------+---------+
| 842ab3268a2c47e6a4b0d8774de805ae |  admin   |   True  |
| 7ff1dfb5a6f349958c3a949248e56236 | companyA |   True  |        #tenant的id号
| 10d1465c00d049fab88dec1af0f56b1b |   demo   |   True  |
| 3b57a14f7c354a979c9f62b60f31a331 | service  |   True  |
+----------------------------------+----------+---------+查看角色的id号:
[root@controller ~]# keystone role-list
+----------------------------------+----------+
|                id                |   name   |
+----------------------------------+----------+
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ |                  #_member_角色的id号
| 7b0ceee10fb64960acb2b6f0b9247b4f |  admin   |
+----------------------------------+----------+查看用户的id号:
[root@controller ~]# keystone user-role-add --user ce398fc13d224c63b9d90b3cc2b6d464 --role 9fe2ff9ee4384b1894a90878d3e92bab --tenant 7ff1dfb5a6f349958c3a949248e56236查看用户的关联信息:[root@controller ~]# keystone user-role-list --user user1 --tenant companyA
+----------------------------------+----------+----------------------------------+----------------------------------+
|                id                |   name   |             user_id              |            tenant_id             |
+----------------------------------+----------+----------------------------------+----------------------------------+
| 9fe2ff9ee4384b1894a90878d3e92bab | _member_ | ce398fc13d224c63b9d90b3cc2b6d464 | 7ff1dfb5a6f349958c3a949248e56236 |
+----------------------------------+----------+----------------------------------+----------------------------------+

4. 总结

以上是keystone开放用户的过程,keystone的操作涉及到:user,tenant,role,service和endpoint,每个对象都有相应的增删改查的方法实现,查看keystone的命令即可,如keystone help user-create可以查看到user-create的具体用法。

5. keystone用法附录

[root@controller ~]# keystone -h

usage: keystone [--version] [--timeout <seconds>]

[--os-username <auth-user-name>]

[--os-password <auth-password>]

[--os-tenant-name <auth-tenant-name>]

[--os-tenant-id <tenant-id>] [--os-auth-url <auth-url>]

[--os-region-name <region-name>]

[--os-identity-api-version <identity-api-version>]

[--os-token <service-token>]

[--os-endpoint <service-endpoint>]

[--os-cacert <ca-certificate>] [--insecure]

[--os-cert <certificate>] [--os-key <key>] [--os-cache]

[--force-new-token] [--stale-duration <seconds>]

<subcommand> ...

Pending deprecation: Command-line interface to the OpenStack Identity API.

This CLI is pending deprecation in favor of python-openstackclient. For a

Python library, continue using python-keystoneclient.

Positional arguments:

<subcommand>

catalog             List service catalog, possibly filtered by service.

ec2-credentials-create                                             #兼容于亚马逊的EC2

Create EC2-compatible credentials for user per tenant.

ec2-credentials-delete

Delete EC2-compatible credentials.

ec2-credentials-get

Display EC2-compatible credentials.

ec2-credentials-list

List EC2-compatible credentials for a user.   #访问端点endpoint管理

endpoint-create     Create a new endpoint associated with a service.

endpoint-delete     Delete a service endpoint.

endpoint-get        Find endpoint filtered by a specific attribute or

service type.

endpoint-list       List configured service endpoints.

password-update     Update own password.

role-create         Create new role.                               #角色role的管理

role-delete         Delete role.

role-get            Display role details.

role-list           List all roles.

service-create      Add service to Service Catalog.                #服务service的管理

service-delete      Delete service from Service Catalog.

service-get         Display service from Service Catalog.

service-list        List all services in Service Catalog.

tenant-create       Create new tenant.                             #租户tenant的管理

tenant-delete       Delete tenant.

tenant-get          Display tenant details.

tenant-list         List all tenants.

tenant-update       Update tenant name, description, enabled status.

token-get           Display the current user token.

user-create         Create new user                                #用户user的管理

user-delete         Delete user.

user-get            Display user details.

user-list           List users.

user-password-update

Update user password.

user-role-add       Add role to user.                           #用户角色和tenant的管理

user-role-list      List roles granted to a user.

user-role-remove    Remove role from user.

user-update         Update user's name, email, and enabled status.

discover            Discover Keystone servers, supported API versions and

extensions.

bootstrap           Grants a new role to a new user on a new tenant, after

creating each.

bash-completion     Prints all of the commands and options to stdout.

help                Display help about this program or one of its

subcommands.

转载于:https://blog.51cto.com/happylab/1736084

openstack运维实战系列(一)之keystone用户建立相关推荐

  1. openstack运维实战系列(十)之nova指定compute节点和IP地址

    1. 背景需求 在openstack中,nova负责openstack虚拟机的生命周期的管理,neutron则负责虚拟机的网络管理工作,默认情况下,创建一台虚拟机,nova会根据nova-schedu ...

  2. openstack运维实战系列(十七)之glance与ceph结合

    1. 需求说明 glance作为openstack中p_w_picpath服务,支持多种适配器,支持将p_w_picpath存放到本地文件系统,http服务器,ceph分布式文件系统,glusterf ...

  3. MySQL运维实战系列:MySQL5.7 Group By 问题

    一.环境 MySQL版本:MySQL5.7.22表结构:CREATE TABLE `crm_report_accounting_income` (`id` int(10) NOT NULL AUTO_ ...

  4. 20161011L04-03老男孩linux运维实战培训-Linux系统的用户和用户组管理-01

    一些LINUX用户的操作命令 useradd   创建用户 adduser  创建用户 passwd  改密码命令 usermod  改变用户名,和用户目录的 userdel 删除用户 id 显示用户 ...

  5. 《VMware vSphere企业运维实战》——2.6 使用vCenter Converter迁移物理机到虚拟机

    本节书摘来自异步社区<VMware vSphere企业运维实战>一书中的第2章,第2.6节,作者:王春海著,更多章节内容可以访问云栖社区"异步社区"公众号查看 2.6 ...

  6. OpenStack运维面试(1)

    确实有很久都没写博客了,这篇题目笔记是自己经历的,也有自己思考的,已经有很长时间才算写完这30道.说说自己的状况吧,首先说为什么是OpenStack运维面试呢,因为之前在一家OpenStack云计算公 ...

  7. 《VMware vSphere 6.5企业运维实战》已经出版

    <VMware vSphere 6.5企业运维实战>已经由人民邮电出版社出版,购买链接: https://item.jd.com/26391828617.html 本书以vSphere 6 ...

  8. OpenStack 运维 - 部署Nova组件 [T版]

    OpenStack 运维 - 部署Nova组件 一.创建Nova数据库并执行授权操作 二.管理Nova用户及服务 ① 创建Nova用户 ② 创建Nova服务 ③ Nova关联endpoint端点 ④ ...

  9. 老男孩linux运维实战培训中心讲师介绍

    老男孩linux运维实战培训中心讲师介绍 老男孩,资深unix/Linux系统运维网站架构专家.高级运维总监.从事一线网站运维及系统架构管理10年以上,13年的教育教学培训经历(擅长教育心理,职业规划 ...

最新文章

  1. Hive SQL 监控系统 - Hive Falcon
  2. 深圳杯---人才吸引力评价模型研究
  3. 关于NLP相关技术全部在这里:预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、深度学习、语法分析、文本处理...
  4. 号外:Mapinfo被Pitney Bowes公司收购
  5. python 函数性能分析
  6. csol永恒python怎么升级_python|怎么升级python的pip
  7. ThinkPHP 5 访问出现No input file specified
  8. ADB投屏_最强开源投屏神器,跨平台电脑控制+文件传输——scrcpy
  9. git新建空白文件没有生效
  10. 1001. A+B Format
  11. c语言输入数字字母个数字是什么意思,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
  12. html 模板 引用,模板引用说明
  13. TSC条码打印机亮红灯解决办法!
  14. PLC控制系统设计的基本原则和步骤
  15. 我要多开梦幻手游PC端(梦幻手游PC端多开的简单分析及实现办法)
  16. 课程设计 天气预报数据可视化开发
  17. 近岸蛋白通过注册:预计9个月营收2.3亿 同比降幅超15%
  18. 谷歌野心有多大?曾有意联合腾讯收购 Epic、计划 5 年成为全球最大游戏平台!
  19. wps表格宏被禁用如何解禁_wps的excel中宏被禁用怎么办 - 卡饭网
  20. 关于卡尔曼及卡尔曼增益的理解【精】

热门文章

  1. 和我一起打造个简单搜索之ElasticSearch入门
  2. 《Android 应用案例开发大全(第3版)》——第2章,第2.8节壁纸中的着色器开发...
  3. Oracle操作管理之用户和角色
  4. redhat安装yum的四种方法(修改)
  5. 计算复杂数学表达式的值
  6. mysql查询未讲课教师_经典教师 学生 成绩sql面试题再次来袭3(附答案)
  7. 硬编码是什么意思_饰品上那些编码和数字你都知道是什么意思吗?
  8. FAILED Execution Error, return code 2 from org
  9. 谷歌浏览器 flash_Chrome 76测试版默认禁用Flash 用户可避开更多付费页面
  10. Labview连接mysql进行仿真