一、介绍

  参照官网部署:https://docs.openstack.org/keystone/queens/install/

  继续上一博客进行部署:http://www.cnblogs.com/weijie0717/p/8549541.html

二、部署 keystone 

  1、配置数据库  (任意controller 节点操作)

    # mysql  -uroot -p

      mysql> CREATE DATABASE keystone; 

      mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost'  IDENTIFIED BY 'KEYSTONE_DBPASS';

      mysql> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

      

  2、keystone 包安装(所有 controller 节点)

    # yum install openstack-keystone httpd mod_wsgi

  3、编辑keystone 配置 (所有 controller 节点)

    # vim /etc/keystone/keystone.conf     

[database]
connection = mysql+pymysql://keystone:KEYSTONE_DBPASS@controller/keystone #controller 为Mysql-ha-vip hosts. [token]
provider = fernet

  4、初始化数据库 keystone (all controller 节点操作)

    # 初始化是因为python的orm对象关系映射,需要初始化来生成数据库表结构

    # su -s /bin/sh -c "keystone-manage db_sync" keystone

  5、初始化 Fernet key仓库  (all controller 节点操作

    # keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

    # keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

  6、keystone 身份认证服务引导API 配置 (all controller 节点操作 )

   # keystone-manage bootstrap --bootstrap-password ADMIN_PASS   --bootstrap-admin-url http://controller:35357/v3/   --bootstrap-internal-url http://controller:5000/v3/   --bootstrap-public-url http://controller:5000/v3/   --bootstrap-region-id RegionOne

  7、配置 Apache 服务 (所有 controller 节点)

    a、修改 ServerName

      # vim /etc/httpd/conf/httpd.conf 

        ServerName 主机名       #hostname 查询主机名

    b、创建连接文件 /usr/share/keystone/wsgi-keystone.conf ,并修改:

      # ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

      # vim /etc/httpd/conf.d/wsgi-keystone.conf      #绑定服务今天IP地址

        Listen 节点网卡IP:5000

        Listen 节点网卡IP:35357

    c、重启httpd 服务,并设置开机自启动。

      # systemctl enable httpd.service

      # systemctl start httpd.service

      备注:haproxy 默认的配置文件会占用一个 5000端口,和 keystone 的5000 端口冲突,会导致http服务启动失败。注释haproxy 5000 端口配置,重启haproxy--> 重启httpd 服务。

      

  8、配置 keystone-admin 和 keystone-public、keystone-internal   的haproxy  (所有 controller 节点)

    博客参照:http://www.cnblogs.com/weijie0717/p/8530102.html

   9、创建 USER: admin、demo 的认证变量 ,后期验证keystone 使用。 (所有 controller 节点)

    # cd /root

    # vim admin-openrc      

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS #第六步中的 ADMIN_PASS
export OS_AUTH_URL=http://controller:35357/v3 # keystone-haproxy-vip
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

    # vim demo-openrc       

export OS_PROJECT_DOMAIN_NAME=Default
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=DEMO_PASS # 后期创建demo 用户时设置的密码。
export OS_AUTH_URL=http://controller:5000/v3 #keystone-haproxy-vip
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

     #使用或切换变量。    

      # source  admin-openrc  

      # source demo-openrc    

三、创建 domain、projects、users、roles    (在任意controller 节点操作)

  1、创建domain

    # openstack domain create --description "An Example Domain" example

    

  2、创建projects

    # openstack project create --domain default   --description "Service Project" service       #创建service projiect

    

    # openstack project create --domain default   --description "Demo Project" demo     #创建demo projiect

    

  3、创建 users

    # openstack user create --domain default --password-prompt demo     #创建 demo 用户,需要输入密码。

    

  4、创建 role:

    # openstack role create user

     

  5、给demo 用户 分配 user 角色。

    # openstack role add --project demo --user demo user

 五、验证keystone 服务。 (在任意controller 节点操作)

  1、验证用户

    #  unset OS_AUTH_URL OS_PASSWORD

    a、admin 用户

      # openstack --os-auth-url http://controller:35357/v3   --os-project-domain-name Default --os-user-domain-name Default   --os-project-name admin --os-username admin token issue

      

    b、demo 用户

      # openstack --os-auth-url http://controller:5000/v3   --os-project-domain-name Default --os-user-domain-name Default   --os-project-name demo --os-username demo token issue

      

部署完成。

续:查看信息等常用命令

  1、查看 catalog 信息

    # openstack catalog list

    

  2、查看 endpoint 信息

    # openstack endpoint list

    

  3、查看当前openstack所提供的服务列表

    # openstack service list

    

  4、查看域列表

    # openstack domain list

    

  5、查看帮助

    # openstack --help

  6、申请token 操作,需要配合 之前别写好的 admin-openrc和 demo-openrca脚本

    #  source admin-openrc

    #  openstack token issue

    

谢谢!!

openstack(Pike 版)集群部署(二)--- Keystone 部署的更多相关文章

  1. openstack高可用集群16-ceph介绍和部署

    Ceph Ceph是一个可靠.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备和文件系统服务.块设备存储是Ceph的强项. Ceph的主要优点是分布式 ...

  2. openstack pike 集群高可用 安装 部署 目录汇总

    # openstack pike 集群高可用 安装部署#安装环境 centos 7 史上最详细的openstack pike版 部署文档欢迎经验分享,欢迎笔记分享欢迎留言,或加QQ群663105353 ...

  3. openstack高可用集群21-生产环境高可用openstack集群部署记录

    第一篇 集群概述 keepalived + haproxy +Rabbitmq集群+MariaDB Galera高可用集群   部署openstack时使用单个控制节点是非常危险的,这样就意味着单个节 ...

  4. CentOS7.2非HA分布式部署Openstack Pike版 (实验)

    部署环境 一.组网拓扑 二.设备配置 笔记本:联想L440处理器:i3-4000M 2.40GHz内存:12G虚拟机软件:VMware® Workstation 12 Pro(12.5.2 build ...

  5. 实现CI/CDk8s高可用集群搭建总结以及部署API到k8s

    实现CI/CD(Centos7.2)系列二:k8s高可用集群搭建总结以及部署API到k8s 前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署 ...

  6. [转]搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  7. 搭建高可用mongodb集群(二)—— 副本集

    在上一篇文章<搭建高可用MongoDB集群(一)——配置MongoDB> 提到了几个问题还没有解决. 主节点挂了能否自动切换连接?目前需要手工切换. 主节点的读写压力过大如何解决? 从节点 ...

  8. VLAN 模式下的 OpenStack 管理 vSphere 集群方案

    本文不合适转载,只用于自我学习. 关于为什么要用OpenStack 管理 vSphere 集群,原因可以有很多,特别是一些传统企业,VMware 的使用还是很普遍的,用 OpenStack 纳管至少会 ...

  9. kafka集群监控之kafka-manager部署(kafka-manager的进程为:ProdServerStart)

    kafka集群监控之kafka-manager部署(ProdServerStart) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 雅虎官网GitHub项目:https://git ...

  10. 即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破?

    即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破? 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.报错:org.a ...

随机推荐

  1. Node.js之process模块

    注意⚠️:process为nodejs内置对象,不需要实例化,改模块用来与当前进程进行互动,可以通过全局变量process访问,它是一个EventEmitter对象的实例. process对象提供一系 ...

  2. PostMessage实现多窗口之间的数据传递

    [本文参考自网络,参考地址:https://blog.csdn.net/lsyyoyo/article/details/38726419] 1.在公共的头文件中添加一个宏定义: #define WM_ ...

  3. 链接(跳转)<router-link> 和 路由实例Router

    <router-link>和<router-link>传入的对象参数中包含path路径.name命名路由.params路径参数.query ?查询,并且如果提供了 path,p ...

  4. C# 把byte[]输出为图片文件

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/HK_JY/article/details/80320381 /// <summary> ...

  5. 选择、操作web元素

    11月1日 什么是web元素 Selenium自动化主要就是:选择界面元素,操作界面元素(输入操作:点击.输入文字.拖拽等,输出操作:获取元素的各种属性),根据界面上获取的数据进行分析和处理 选择元素 ...

  6. C# 类库调试 启动外部程序无法调试

    无法调试进程 test.exe [17936] 中的某些代码.请参阅下面的状态信息. IntelliTrace 代码失败(0x80131534).    Managed (v4.6.v4.5.v4.0 ...

  7. 子类中的成员函数覆盖父类(name hiding)

    只要子类中出现了和父类中同名的函数,父类中的所有这个名字的函数,就被屏蔽了. 静态函数成员也是如此?经过代码验证,确实如此. #include <iostream> using names ...

  8. mac下shell给文件名批量加前缀

    用rename命令 如果没装的话执行下面这个命令安装rename brew install rename rename 's/^/logo_/' *.png

  9. curator 实现分布式一致性锁

    最近准备在项目中引入分布式锁,故而研究基于zookeeper的curator框架. 网上资料不多,自己研究其源码发现,这个框架已经帮我做了很多现成的实现. 下面介绍下锁的实现: 通过源码中Lockin ...

  10. C++复习:对C的拓展

    简单的C++程序 求圆的周长和面积 数据描述:             半径,周长,面积均用实型数表示 数据处理:         输入半径 r:         计算周长 = 2*π*r :     ...