Openstack Keystone 认证服务(四)

keystone 的安装完全依赖ocata的源, 如果没有建议自己搭建. 否则用的源不对会产生各种奇葩问题.

创建keystone库和用户:

  1. ## 建库和用户:
  2. mysql -u root -p123456
  3. CREATE DATABASE keystone;
  4. GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '123456';
  5. flush privileges;
  6. *** 做完后去2台控制机上测试一下keystone 账号是否能够正常登录.

控制节点安装内容(2台):

  1. # 控制节点安装:
  2. yum install -y openstack-keystone httpd mod_wsgi
  3. ## 编辑文件 /etc/keystone/keystone.conf 并完成如下动作,在 [database] 部分,配置数据库访问:
  4. vim /etc/keystone/keystone.conf
  5. [database]
  6. ......
  7. #connection = <None> # 574行
  8. connection = mysql+pymysql://keystone:123456@openstack-linux36-vip.magedu.net/keystone
  9. keystone:123456 # 用户名和密码
  10. openstack-linux36-vip.magedu.net # 内部域名可以直接指向DB或者VIP,写成域名方便后期自行切换.
  11. ## 写入/etc/hosts ***
  12. vim /etc/hosts
  13. 10.10.5.140 openstack-linux36-vip.magedu.net
  14. *** 测试一下: mysql -h openstack-linux36-vip.magedu.net -u keystone -p123456
  15. ## 在``[token]``部分,配置Fernet UUID令牌的提供者。
  16. [token]
  17. # ...
  18. provider = fernet
  19. ## 添加admin验证token(手工生成并添加):
  20. [root@cont-1 ~]# openssl rand -hex 10
  21. 99251e93898c371cb0c1
  22. vim +15 /etc/keystone/keystone.conf
  23. [DEFAULT]
  24. ......
  25. [DEFAULT]
  26. admin_token = 99251e93898c371cb0c1
  27. ### 总结一下内容(省略默认的内容):
  28. [root@cro-1 yum.repos.d]# grep -vE '^$|^#' /etc/keystone/keystone.conf
  29. [DEFAULT]
  30. admin_token = 99251e93898c371cb0c1
  31. [database]
  32. connection = mysql+pymysql://keystone:123456@openstack-linux36-vip.magedu.net/keystone
  33. [token]
  34. provider = fernet
  35. ......
  36. ####################################################################################
  37. ### 初始化keystone 身份认证服务的数据库:
  38. su -s /bin/sh -c "keystone-manage db_sync" keystone
  39. *** 连接数据库查看keystone 库,如果配置文件的mysql连接正常,会生成很多表.
  40. ### 初始化Fernet key:
  41. keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
  42. keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
  43. *** 会在/etc/keystone 下生成2个目录,credential-keys fernet-keys
  44. ### 创建自定义的配置文件:
  45. ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
  46. vim /etc/httpd/conf.d/wsgi-keystone.conf
  47. Listen 5000
  48. Listen 35357
  49. <VirtualHost *:5000>
  50. WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
  51. WSGIProcessGroup keystone-public
  52. WSGIScriptAlias / /usr/bin/keystone-wsgi-public
  53. WSGIApplicationGroup %{GLOBAL}
  54. WSGIPassAuthorization On
  55. ErrorLogFormat "%{cu}t %M"
  56. ErrorLog /var/log/httpd/keystone-error.log
  57. CustomLog /var/log/httpd/keystone-access.log combined
  58. <Directory /usr/bin>
  59. Require all granted
  60. </Directory>
  61. </VirtualHost>
  62. <VirtualHost *:35357>
  63. WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
  64. WSGIProcessGroup keystone-admin
  65. WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
  66. WSGIApplicationGroup %{GLOBAL}
  67. WSGIPassAuthorization On
  68. ErrorLogFormat "%{cu}t %M"
  69. ErrorLog /var/log/httpd/keystone-error.log
  70. CustomLog /var/log/httpd/keystone-access.log combined
  71. <Directory /usr/bin>
  72. Require all granted
  73. </Directory>
  74. </VirtualHost>
  75. ########################################################################################################################
  76. ## 启动httpd:
  77. systemctl enable httpd
  78. systemctl start httpd
  79. ## 添加环境变量让我们可以跳过密码通过token创建项目:
  80. *** 目前没有方法可以认证keystone 通过环境变量的方法去做一下认证:
  81. export OS_TOKEN=99251e93898c371cb0c1
  82. export OS_AUTH_URL=http://10.10.5.138:35357/v3
  83. export OS_IDENTITY_API_VERSION=3
  84. export OS_URL=http://10.10.5.138:35357/v3
  85. ## 测试一下 是否可以不出错误:
  86. openstack user list

创建并初始化一个项目:

  1. # 初始化:
  2. openstack domain create --description "Default Domain" default

查看并删除一个domain:

  1. # 查看domain list:
  2. [root@cont-1 ~]# openstack domain list
  3. +----------------------------------+---------+---------+----------------+
  4. | ID | Name | Enabled | Description |
  5. +----------------------------------+---------+---------+----------------+
  6. | 317ace63cb8f4562af682ca6c7bdf955 | default | True | Default Domain |
  7. +----------------------------------+---------+---------+----------------+
  8. ## 删除一个domain id:
  9. ** openstack domain delete + ID
  10. openstack domain delete 317ace63cb8f4562af682ca6c7bdf955

创建一个admin的项目:

  1. ## 创建admin 项目:
  2. [root@cont-1 ~]# openstack project create --domain default --description "Admin Project" admin
  3. +-------------+----------------------------------+
  4. | Field | Value |
  5. +-------------+----------------------------------+
  6. | description | Admin Project |
  7. | domain_id | 317ace63cb8f4562af682ca6c7bdf955 |
  8. | enabled | True |
  9. | id | 7895c74b24e640498acb869a790f7092 |
  10. | is_domain | False |
  11. | name | admin |
  12. | parent_id | 317ace63cb8f4562af682ca6c7bdf955 |
  13. +-------------+----------------------------------+
  14. ## 创建admin 账号(我设置的是:123456):
  15. [root@cont-1 ~]# openstack user create --domain default --password-prompt admin
  16. User Password:
  17. Repeat User Password:
  18. +---------------------+----------------------------------+
  19. | Field | Value |
  20. +---------------------+----------------------------------+
  21. | domain_id | 317ace63cb8f4562af682ca6c7bdf955 |
  22. | enabled | True |
  23. | id | 7e5fe95e8caa48f78e218919d05693d5 |
  24. | name | admin |
  25. | options | {} |
  26. | password_expires_at | None |
  27. +---------------------+----------------------------------+
  28. ## 创建admin role(创建admin角色, 账号和role角色关联后就有了admin role的权限.(角色即权限)):
  29. [root@cont-1 ~]# openstack role create admin
  30. +-----------+----------------------------------+
  31. | Field | Value |
  32. +-----------+----------------------------------+
  33. | domain_id | None |
  34. | id | ff08ecd7583542bc94ac3eb56794638a |
  35. | name | admin |
  36. +-----------+----------------------------------+
  37. ## 给admin 用户授权(角色即权限):
  38. #将admin用户授予admin项目的admin 角色,即给admin项目添加一个用户叫做admin, 并将其添加至admin角色,角色是权限的一种集合:
  39. [root@cont-1 ~]# openstack role add --project admin --user admin admin
  40. *** --project admin # 给admin项目
  41. *** --user admin # 添加admin用户账号
  42. *** 最后的admin # 角色名称(role admin)
  43. ############################ 现在 admin 才是一个真正的管理员账号 拥有权限和项目 ##############################################

创建一个Demo 项目:

  1. # 创建一个Demo 项目组(没啥大用处,给其他人演示可以放在这个项目里面。):
  2. [root@cont-1 ~]# openstack project create --domain default --description "Demo Project" demo
  3. +-------------+----------------------------------+
  4. | Field | Value |
  5. +-------------+----------------------------------+
  6. | description | Demo Project |
  7. | domain_id | 317ace63cb8f4562af682ca6c7bdf955 |
  8. | enabled | True |
  9. | id | bebe93941d3d4203a2c630ff4da4596c |
  10. | is_domain | False |
  11. | name | demo |
  12. | parent_id | 317ace63cb8f4562af682ca6c7bdf955 |
  13. +-------------+----------------------------------+
  14. # 创建demo用户并设置密码为demo:
  15. [root@cont-1 ~]# openstack user create --domain default --password-prompt demo
  16. User Password:
  17. Repeat User Password:
  18. +---------------------+----------------------------------+
  19. | Field | Value |
  20. +---------------------+----------------------------------+
  21. | domain_id | 317ace63cb8f4562af682ca6c7bdf955 |
  22. | enabled | True |
  23. | id | 00ff302f8c924bb1b171965c5d5aca92 |
  24. | name | demo |
  25. | options | {} |
  26. | password_expires_at | None |
  27. +---------------------+----------------------------------+
  28. ## 创建一个User角色:
  29. [root@cont-1 ~]# openstack role create user
  30. +-----------+----------------------------------+
  31. | Field | Value |
  32. +-----------+----------------------------------+
  33. | domain_id | None |
  34. | id | 66a589c005b0410eb71f5e4aaa5f0418 |
  35. | name | user |
  36. +-----------+----------------------------------+
  37. ## 把Demo 用户添加到Demo 项目:
  38. [root@cont-1 ~]# openstack role add --project demo --user demo user
  39. #############################至此 demo 用户已经被添加到user role里,权限就没有admin 那么大了#####################################

创建一个service项目:

*** 各服务之间与keystone进行访问和认证,service用于给服务创建用户:

  1. openstack project create --domain default --description "Service Project" service
  2. [root@cont-1 ~]# openstack project create --domain default --description "Service Project" service
  3. +-------------+----------------------------------+
  4. | Field | Value |
  5. +-------------+----------------------------------+
  6. | description | Service Project |
  7. | domain_id | 317ace63cb8f4562af682ca6c7bdf955 |
  8. | enabled | True |
  9. | id | 89067cca56fd477d86aed5c221b4c55d |
  10. | is_domain | False |
  11. | name | service |
  12. | parent_id | 317ace63cb8f4562af682ca6c7bdf955 |
  13. +-------------+----------------------------------+

XX 服务注册:

*** 将Keystone 服务地址注册到 openstack ***

  1. # 3.9.1 创建一个keystone 认证服务:
  2. [root@cont-1 ~]# openstack service list
  3. [root@cont-1 ~]# openstack service create --name keystone --description "Openstack Identity" identity # identity 是验证方式
  4. +-------------+----------------------------------+
  5. | Field | Value |
  6. +-------------+----------------------------------+
  7. | description | Openstack Identity |
  8. | enabled | True |
  9. | id | 376d49d3d59147a49e5f5081cb04a2b1 |
  10. | name | keystone |
  11. | type | identity |
  12. +-------------+----------------------------------+
  13. [root@cont-1 ~]# openstack service list ## 验证服务是否创建成功
  14. +----------------------------------+----------+----------+
  15. | ID | Name | Type |
  16. +----------------------------------+----------+----------+
  17. | 376d49d3d59147a49e5f5081cb04a2b1 | keystone | identity |
  18. +----------------------------------+----------+----------+
  19. # 3.9.2 创建端点 (public interntl admin)
  20. public # 公共端点
  21. internal # 私有端点
  22. admin # 管理端点
  23. # 注册以上3个端点服务,后面的所有服务都执行以上操作:
  24. *** 此处注册一定要写上域名 或者 VIP地址,这样以后方便扩容和更换设备:
  25. *** 不记得是哪个 可以看/etc/hosts 里面的绑定IP keystone 里面的"connection"
  26. *** 既然写了VIP 地址或者域名,也要去haproxy 上做一下 端口转发.
  27. openstack endpoint create --region RegionOne identity public http://openstack-linux36-vip.magedu.net:5000/v3
  28. openstack endpoint create --region RegionOne identity internal http://openstack-linux36-vip.magedu.net:5000/v3
  29. openstack endpoint create --region RegionOne identity admin http://openstack-linux36-vip.magedu.net:35357/v3
  30. ## 执行过程:
  31. [root@cont-1 ~]# openstack endpoint create --region RegionOne identity public http://openstack-linux36-vip.magedu.net:5000/v3
  32. +--------------+-------------------------------------------------+
  33. | Field | Value |
  34. +--------------+-------------------------------------------------+
  35. | enabled | True |
  36. | id | 65605d57632a4c8ba0521b20f28bbcc2 |
  37. | interface | public |
  38. | region | RegionOne |
  39. | region_id | RegionOne |
  40. | service_id | 376d49d3d59147a49e5f5081cb04a2b1 |
  41. | service_name | keystone |
  42. | service_type | identity |
  43. | url | http://openstack-linux36-vip.magedu.net:5000/v3 |
  44. +--------------+-------------------------------------------------+
  45. [root@cont-1 ~]# openstack endpoint create --region RegionOne identity internal http://openstack-linux36-vip.magedu.net:5000/v3
  46. +--------------+-------------------------------------------------+
  47. | Field | Value |
  48. +--------------+-------------------------------------------------+
  49. | enabled | True |
  50. | id | ec3647ea42f347008d7e35b52324d995 |
  51. | interface | internal |
  52. | region | RegionOne |
  53. | region_id | RegionOne |
  54. | service_id | 376d49d3d59147a49e5f5081cb04a2b1 |
  55. | service_name | keystone |
  56. | service_type | identity |
  57. | url | http://openstack-linux36-vip.magedu.net:5000/v3 |
  58. +--------------+-------------------------------------------------+
  59. [root@cont-1 ~]# openstack endpoint create --region RegionOne identity admin http://openstack-linux36-vip.magedu.net:35357/v3
  60. +--------------+--------------------------------------------------+
  61. | Field | Value |
  62. +--------------+--------------------------------------------------+
  63. | enabled | True |
  64. | id | 858dee6eafb54902826175be76954094 |
  65. | interface | admin |
  66. | region | RegionOne |
  67. | region_id | RegionOne |
  68. | service_id | 376d49d3d59147a49e5f5081cb04a2b1 |
  69. | service_name | keystone |
  70. | service_type | identity |
  71. | url | http://openstack-linux36-vip.magedu.net:35357/v3 |
  72. +--------------+--------------------------------------------------+
  73. ## 验证是否添加成功:
  74. [root@cont-1 ~]# openstack endpoint list
  75. +----------------------------------+-----------+--------------+--------------+---------+-----------+--------------------------------------------------+
  76. | ID | Region | Service Name | Service Type | Enabled | Interface | URL |
  77. +----------------------------------+-----------+--------------+--------------+---------+-----------+--------------------------------------------------+
  78. | 65605d57632a4c8ba0521b20f28bbcc2 | RegionOne | keystone | identity | True | public | http://openstack-linux36-vip.magedu.net:5000/v3 |
  79. | 858dee6eafb54902826175be76954094 | RegionOne | keystone | identity | True | admin | http://openstack-linux36-vip.magedu.net:35357/v3 |
  80. | ec3647ea42f347008d7e35b52324d995 | RegionOne | keystone | identity | True | internal | http://openstack-linux36-vip.magedu.net:5000/v3 |
  81. +----------------------------------+-----------+--------------+--------------+---------+-----------+--------------------------------------------------+
  82. ## 去haproxy 上配置转发服务:
  83. *** 目前就一台服务器在做这个验证, 所以呢 haproxy也只能吧5000 35357 80 这几个端口给转发到 1010.5.138 上.
  84. ########### keystone ###########
  85. listen openstack_keystone_port_5000
  86. bind 0.0.0.0:5000
  87. mode tcp
  88. log global
  89. server 10.10.5.138 10.10.5.138:5000 check inter 3000 fall 2 rise 5
  90. listen openstack_keystone_port_35357
  91. bind 0.0.0.0:35357
  92. mode tcp
  93. log global
  94. server 10.10.5.138 10.10.5.138:35357 check inter 3000 fall 2 rise 5
  95. ########################################
  96. /etc/init.d/haproxy restart
  97. ########### 重启 搞定 ###############
  98. ## 测试Keystone 是否可以做用户验证:
  99. *** 验证admin用户, 密码123456 , 新打开一个窗口并进行一下操作:
  100. *** 验证demo用户, 密码demo , 新打开一个窗口并进行一下操作:
  101. 1 打开新窗口
  102. 2 查看/etc/hosts文件,内容一定要对 "10.10.5.140 openstack-linux36-vip.magedu.net"
  103. 3 测试本机IP, VIP(haproxy) 随便切换,最后都能通过keystone的验证就行.
  104. export OS_IDENTITY_API_VERSION=3 # 设置环境变量,
  105. openstack --os-auth-url http://10.10.5.138:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name demo --os-username demo token issue
  106. openstack --os-auth-url http://openstack-linux36-vip.magedu.net:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue
  107. # 测试结果如下
  108. [root@cont-1 ~]# export OS_IDENTITY_API_VERSION=3
  109. [root@cont-1 ~]# openstack --os-auth-url http://10.10.5.140:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name demo --os-username demo token issue
  110. Password:
  111. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  112. | Field | Value |
  113. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  114. | expires | 2020-05-21T10:43:32+0000 |
  115. | id | gAAAAABexk1E0Ya99oG-mHnbZ2s95Uy-HCRuii7rMraVmv5Mk2IEz41Hj0gysnaknb65H-D8RtimuXmlmxUqn4c9EC8lYDy6iMM- |
  116. | | UYrw0ChvWrJ1HxGwC7IxsVGEFsYEApjgINyrT9fDtYQQZPh3GBFcuP8mGokiPb0PTZNMTWrxMSxZpRfJlr0 |
  117. | project_id | bebe93941d3d4203a2c630ff4da4596c |
  118. | user_id | 00ff302f8c924bb1b171965c5d5aca92 |
  119. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  120. [root@cont-1 ~]# openstack --os-auth-url http://openstack-linux36-vip.magedu.net:35357/v3 --os-project-domain-name default --os-user-domain-name default --os-project-name admin --os-username admin token issue
  121. Password:
  122. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  123. | Field | Value |
  124. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  125. | expires | 2020-05-21T10:44:51+0000 |
  126. | id | gAAAAABexk2TBJXILbxI3l2F56SLisp7IIC9EqPM- |
  127. | | fPpgR4p_DoHe_YGsz5z6rcPHtkEuHNvwD2OInIZFC33LknuuLRmGEXMXlYbLXkiyJ2_TlgROPEz1J3MU3Jkxbz6NcCxHJD1mR16VgY5_OPLpJ1bKowxFisM3khnnQVD62_NcSqLVbCcOlA |
  128. | project_id | 7895c74b24e640498acb869a790f7092 |
  129. | user_id | 7e5fe95e8caa48f78e218919d05693d5 |
  130. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

使用脚本设置环境变量:

  1. ## 验证admin 用户
  2. [root@cont-1 ~]# cat admin.sh
  3. #!/bin/bash
  4. export OS_PROJECT_DOMAIN_NAME=default
  5. export OS_USER_DOMAIN_NAME=default
  6. export OS_PROJECT_NAME=admin
  7. export OS_USERNAME=admin
  8. export OS_PASSWORD=123456
  9. export OS_AUTH_URL=http://10.10.5.140:35357/v3 # 注意此处端口是35357
  10. export OS_IDENTITY_API_VERSION=3
  11. export OS_IMAGE_API_VERSION=2
  12. [root@cont-1 ~]# source admin.sh
  13. [root@cont-1 ~]# sh s.sh
  14. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  15. | Field | Value |
  16. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  17. | expires | 2020-05-21T19:06:47+0000 |
  18. | id | gAAAAABexsM3OugdYsDazpfSVf34OUH4Vp4Zb0HJdA21eHQ8mHHLuxxtoXbvL4nRDsgJHW5_zT8mPdLc64HXClqIgT6nZluWqnoGSwroGjdXaSQV08ij5h02qZYRIxnZxLi5N4FkijuArwq_6GiFhUedCBMq4jt8EZEk_2KZwa4y |
  19. | | fgTQ-s44Sm8 |
  20. | project_id | 7895c74b24e640498acb869a790f7092 |
  21. | user_id | 7e5fe95e8caa48f78e218919d05693d5 |
  22. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  23. ## 验证demo 用户:
  24. [root@cont-1 ~]# cat demo.sh
  25. #!/bin/bash
  26. export OS_PROJECT_DOMAIN_NAME=default
  27. export OS_USER_DOMAIN_NAME=default
  28. export OS_PROJECT_NAME=demo
  29. export OS_USERNAME=demo
  30. export OS_PASSWORD=demo
  31. export OS_AUTH_URL=http://10.10.5.140:5000/v3 # 注意此处端口是5000
  32. export OS_IDENTITY_API_VERSION=3
  33. export OS_IMAGE_API_VERSION=2
  34. [root@cont-1 ~]# source demo.sh
  35. [root@cont-1 ~]# sh s.sh
  36. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | Field | Value |
  38. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | expires | 2020-05-21T19:05:16+0000 |
  40. | id | gAAAAABexsLcyDOe4bL1Y5QLApF0i6OXu-S6iE-psbXCS3ZuySwPpkYyAieK2Ffe85mc5SUDJc_uN1vJsS9Wx7DOU6X16HF7anyWNYY4mKaWplcJPCDn9lQlOIPgMs48hodyHiDWrIjQDdLcY- |
  41. | | UZIt6jvpfvqGsgGDSrRz4VI4G7iogJ546aPCY |
  42. | project_id | bebe93941d3d4203a2c630ff4da4596c |
  43. | user_id | 00ff302f8c924bb1b171965c5d5aca92 |
  44. +------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Openstack Keystone 认证服务(四)的更多相关文章

  1. keystone认证服务

    实验操作平台:OpenStack单节点操作 一.相关概念 1.认证(authentication) 认证是确认允许一个用户访问的进程 2.证书(credentials) 用于确认用户身份的数据 3.令 ...

  2. OpenStack Keystone安装部署流程

    之前介绍了OpenStack Swift的安装部署,采用的都是tempauth认证模式,今天就来介绍一个新的组件,名为Keystone. 1. 简介 本文将详细描述Keystone的安装部署流程,并给 ...

  3. OpenStack Keystone架构

    一. Keystone简介 1. OpenStack Keystone简介 2. Keystone安装与部署 2.1 包安装Keystone 2.2 源码安装源码安装 3 配置运行Keystone 3 ...

  4. Openstack keystone组件详解

    OpenStack Keystone Keystone(OpenStack Identity Service)是 OpenStack 框架中负责管理身份验证.服务规则和服务令牌功能的模块.用户访问资源 ...

  5. (转)理解Keystone的四种Token

    Token 是什么 通俗的讲,token 是用户的一种凭证,需拿正确的用户名/密码向 Keystone 申请才能得到.如果用户每次都采用用户名/密码访问 OpenStack API,容易泄露用户信息, ...

  6. Ubuntu 14.04 LTS 安装 Juno 版 OpenStack Keystone

    本文介绍如何在Ubuntu 14.04 LTS 上安装Juno版的Keystone, 我们采用的是手动安装的方式, 同时仅针对OpenStack的身份与访问管理系统Keystone. 事实上OpenS ...

  7. 3.openstack之mitaka搭建keystone认证服务

    认证服务keystone部署 一:安装和配置服务 1.建库建用户 mysql -u root -p CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON ...

  8. openstack Q版部署-----keystone认证服务安装配置(3)

    一.新建数据库及用户(控制节点) 登录数据库,创建db以及用户: CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'ke ...

  9. openstack 部署(Q版)-----keystone认证服务安装配置

    一.新建数据库及用户 CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' ID ...

随机推荐

  1. Day9 python高级特性-- 列表生成式 List Comprehensions

    Python内置的非常简单却强大的可以用来创建list的生成式.    私理解为,就是for循环出来的结果搞成个list~~~~    要生成顺序增量list可以使用list(range(x,y))来 ...

  2. JavaSE15-集合·其二

    1.Set集合 1.1 Set集合概述和特点 Set集合的特点 元素存取无序 没有索引.只能通过迭代器或增强for循环遍历 不能存储重复元素 1.2 哈希值 哈希值简介 是JDK根据对象的地址或者字符 ...

  3. 第二篇:docker 简单入门(二)

    本篇目录 写在最前面的话 最常用的docker命令 获取远程仓库镜像 写在最前面的话 如上图大家看到的这样,以后此类文章请到其他平台查阅,由于博客园提示说,内容太多简单,所以以后简单的内容我会放在cs ...

  4. Linux下安装mysql-5.7.24

    Mysql数据库的安装对于开发者来说,是我们必然会面对的问题,它的安装过程其实并不复杂,并且网络上的安装教程也非常多,但是对于新手来说,各种不同形式的安装教程,又给新手们带来了要选择哪种方式进行安装的 ...

  5. flink安装及standalone模式启动、idea中项目开发

    安装 环境 Ubuntu 18 jdk8 flink-1.8.1 安装步骤 安装jdk(略) 下载flink-1.8.1-bin-scala_2.12.tgz,解压到指定目录 wget http:// ...

  6. IO流(03)--序列化流、打印流

    序列化流 Java提供了一种对象序列化的机制,用一个字节序列可以表示一个对象,该字节序列包含该对象的数据.对象的类型和对象中存储的属性等信息.字节序列写入到文件中后,就相当于在文件中保存了一个对象信息 ...

  7. Sharding-JDBC使用jasypt3.0及以上版本加密数据库连接密码

    本文中介绍的是基于Sharding-JDBC 4.0和jasypt 3.0及其以上版本对数据库连接密码进行加密操作 引入依赖 项目的pom.xml中引入maven依赖 <dependency&g ...

  8. 【命令】vmstat命令和pmap命令

    博客链接地址:https://www.cnblogs.com/l75790/articles/9197733.html

  9. Winform 去掉 最大化 最小化 关闭按钮(不是关闭按钮变灰)终极解决办法

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. Selenium ActionChains、TouchAction方法

    ActionChains和TouchAction可以用来模拟点击.双击.滑动等事件.ActionChains用于执行PC端的鼠标移动.按键.拖拽等事件:TouchActions用法与ActionCha ...