认证服务keystone(安装和配置)

在配置 OpenStack 身份认证服务前,必须创建一个数据库和管理员令牌

[用数据库连接客户端以root用户连接到数据库服务]
# mysql -u root -p
[创建keystone数据库]
# CREATE DATABASE keystone
[对keystone数据库给予授权]
# GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'KEYSTONE_DBPASS'; //KEYSTONE_DBPASS替换成自己的密码 # GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'KEYSTONE_DBPASS'; //KEYSTONE_DBPASS替换成自己的密码

[主节点安装配置keystone]

安装openstack-keystone和httpd mod_wsgi

# yum -y install openstack-keystone httpd mod_wsgi

修改配置keystone配置文件:/etc/keystone/keystone.conf

[database]部分添加:
connection = mysql+pymysql://keystone:ketstone@localhost:3306/keystone
@用户名:密码@mysql地址/哪个库
[token]令牌部分添加:
provider = fernet

初始化数据库

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

初始化Fernet key库(生成token)

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

[配置 Apache HTTP 服务器]

编辑配置文件:/etc/httpd/conf/httpd.conf

ServerName controller     //controller为主机名字

拷贝wsgi-keystone.conf

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

启动httpd服务

# systemctl start httpd.service    #启动httpd服务
# systemctl enable httpd.service #设置成开机自启

查看服务状态

[创建keystone的catalog]

配置/etc/keystone/keystone.conf

# openssl rand -hex 10   //生成一个随机值在初始的配置中作为管理员的令牌
[DEFAULT]部分添加:
admin_token="openssl rand -hex 10"生成的随机数

设置环境变量

# vim ~/.bashrc
[添加一下内容]
export OS_TOKEN= admin_token //keystone.conf中admin_token的值
export OS_URL=http://192.168.1.156:35357/v3 //v3代表用的keystone版本为3
export OS_IDENTITY_API_VERSION=3

为keystone创建catalog

# openstack service create --name keystone --description "OpenStack Identity" identity

基于建立的服务实体,创建访问该实体的三个api端点

# openstack endpoint create --region RegionOne identity public http://192.168.1.156:5000/v3

openstack endpoint create --region RegionOne identity internal http://192.168.1.156:5000/v3   //前两个为5000端口,专门处理内部和外部的访问

openstack endpoint create --region RegionOne identity admin http://192.168.1.156:35357/v3  //5357端口,专门处理admin#用keystone-wsgi-admin

登录数据库查看keystone库中的表

[创建域,项目,用户,角色,并把四个元素关联在一起]

创建域

openstack domain create --description "Default Domain" default  //#创建一个默认的域“default”

创建管理的项目,用户和角色

创建admin项目,在"default"域中

openstack project create --domain default --description "Admin Project" admin

创建admin用户 在“default”域中

 openstack user create --domain default --password-prompt admin       

创建admin角色

openstack role create admin

添加admin 角色到 admin 项目和用户上:

openstack role add --project admin --user admin admin

验证:

# openstack role assignment list
# openstack role list
# openstack user list
# openstack project list

[测试]

在“default”域中,创建项目名为fzu

openstack project create --domain default --description "FZU Project" fzu

创建用户名为zlx(自己名字的缩写)

openstack user create --domain default --password-prompt zlx 

创建普通用户的角色

openstack role create user

添加admin角色到fzu项目和用户zlx上

openstack role add --project fzu --user zlx admin 

验证

# openstack role assignment list
# openstack role list
# openstack user list
# openstack project list

处于安全考虑 关闭临时认证令牌机制

编辑/etc/keystone/keystone-paste.ini

[pipeline:public_api],[pipeline:admin_api][pipeline:api_v3]部分删除admin_token_auth 。

重置OS_TOKENOS_URL 环境变量:

unset OS_TOKEN OS_URL

作为admin用户,请求认证令牌:

openstack --os-auth-url http://192.168.1.156:35357/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name admin --os-username admin token issue

作为zlx用户,请求认证令牌:

openstack --os-auth-url http://192.168.1.156:5000/v3 \
--os-project-domain-name default --os-user-domain-name default \
--os-project-name fzu --os-username zlx token issue

在etc/keystone下新建文件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为admin密码
export OS_AUTH_URL=http://192.168.1.156:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

同理新建文件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 //ADMIN_PASS为demo用户密码
export OS_AUTH_URL=http://192.168.1.156:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

使用脚本验证

source admin-openrc
openstack token issue

[使用openstack api实现]

获取token:

curl -v -s -X POST $OS_AUTH_URL/auth/tokens?nocatalog   -H "Content-Type: application/json"   -d '{ "auth": { "identity": { "methods": ["password"],"password": {"user": {"domain": {"name": "'"$OS_USER_DOMAIN_NAME"'"},"name": "'"$OS_USERNAME"'", "password": "'"$OS_PASSWORD"'"} } }, "scope": { "project": { "domain": { "name": "'"$OS_PROJECT_DOMAIN_NAME"'" }, "name":  "'"$OS_PROJECT_NAME"'" } } }}' | python -m json.tool

用火狐浏览器下载安装restClient

参考:https://developer.openstack.org/api-ref/identity/v3/

[获取token]

URL地址为:htttp://192.168.1.156:35357/v3/auth/tokens

在header添加Content-Type=application/json

body





请求token成功:状态码(201)

[获取/创建/修改/删除domain]

请求成功:



  • 修改domain

  • 删除domain

    先将状态改成false



    再删除成功

[获取catalog]

[获取service]

[创建service]



[修改service]



[删除service]

openstack-on-centos7之各组件服务的更多相关文章

  1. Centos7 install Openstack - (第四节)添加计算服务(Nova)

    Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方 ...

  2. #openstack centos6 centos7 kvm镜像制作

    #openstack centos6 centos7 kvm 镜像制作 openstack windows 2008镜像 制作 http://www.cnblogs.com/elvi/p/800129 ...

  3. 云计算OpenStack:云计算介绍及组件安装(一)--技术流ken

    云计算介绍 当用户能够通过互联网方便的获取到计算.存储等服务时,我们比喻自己使用到了“云计算”,云计算并不能被称为是一种计算技术,而更像是一种服务模式.每个运维人员心里都有一个对云计算的理解,而最普遍 ...

  4. [ Openstack ] Openstack-Mitaka 高可用之 网络服务(Neutron)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  5. OpenStack Train版-7.neutron网络服务概述

    网络服务NEUTRON概述 一.NEUTRON架构 OpenStack的网络服务neutron是整个OpenStack中最复杂的一个部分,它的基本架构是一个中心服务(neutron-server)外加 ...

  6. 在 CentOS7 上部署 zookeeper 服务

    在 CentOS7 上部署 zookeeper 服务 1 用 SecureCRT 或 XShell 等 Linux 客户端工具连接至 CentOS7 服务器: 2 进入到 /usr/local/too ...

  7. win7 64位DCOM配置(关于导出excel 配置计算机组件服务)(转)

    http://blog.sina.com.cn/s/blog_9323b3a50101qrxm.html [解决方案1] 1:在服务器上安装office的Excel软件. 2:在"开始&qu ...

  8. 已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

    今天写ASP.NET程序,在网页后台的c#代码里写了个事务,事务内部对一张表进行批量插入,对另外一张表进行查询与批量插入. 结果第二张表查询后foreach迭代操作时报错:已禁用对分布式事务管理器(M ...

  9. CentOS7下安装SVN服务端

    CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默 ...

  10. WIN7中组件服务中的DCOM配置找不到Microsoft Excel应用程序的解决办法

    转自:http://blog.csdn.net/lploveme/article/details/8215265 在运行栏中输入命令:dcomcnfg,打开组件服务管理窗口,但是却发现找不到Micro ...

随机推荐

  1. USACO December 铂金Maxflow

    USACO 2015 December Contest, Platinum Problem 1. Max Flow Farmer John has installed a new system of ...

  2. 移动一根火柴使等式成立js版本

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  3. Git - 回滚与撤销

    必要的概念 当前编辑界面:工作区(workspace) "git add"命令:将改动加入到缓存区(Index) "git commit"命令:提交代码到本地库 ...

  4. C#:WebBrowser控件的使用教程及相关问题整理

    推荐阅读: C#WebBrowser控件使用教程与技巧收集--苏飞收集 C# WebBrowser强制在本窗口打开,禁止在新窗口打开 C# WebBrowser禁止在新窗口打开,强制在本窗口打开(多种 ...

  5. 帝国CMS-后台管理工具

    后台管理工具 apache+mysql 搭建的后台管理工具 参考手册*************http://www.phome.net/doc/ecmsedu/ 1.安装----- 使用的一键安装包. ...

  6. 二:理解ASP.NET的运行机制(例:基于HttpHandler的URL重写)

    url重写就是把一些类似article.aspx?id=28的路径重写成 article/28/这样的路径 当用户访问article/28/的时候我们通过asp.net把这个请求重定向到article ...

  7. Python学习--23 内建模块及第三方库

    本文将介绍python里常用的模块.如未特殊说明,所有示例均以python3.4为例: $ python -V Python 3.4.3 网络请求 urllib urllib提供了一系列用于操作URL ...

  8. 高可用Hadoop平台-实战尾声篇

    1.概述 今天这篇博客就是<高可用Hadoop平台>的尾声篇了,从搭建安装到入门运行 Hadoop 版的 HelloWorld(WordCount 可以称的上是 Hadoop 版的 Hel ...

  9. mysql5.7主从复制配置——读写分离实现

    为什么使用主从架构?1.实现服务器负载均衡:2.通过复制实现数据的异地备份:3.提高数据库系统的可用性:4.可以分库[垂直拆分],分表[水平拆分]: 主从配置的前提条件1.MySQL版本一致:2.My ...

  10. BackgroundWorker简单实用(简便的异步操作)

    微软提供了一个快捷使用多线程的帮助类BackgroundWorker,能够快速创建一个新的线程,并能报告进度,暂停,以及在线程完成后处理别的任务. 1.BackgroundWorker类介绍 1.1. ...