设为首页 收藏本站
查看: 1432|回复: 0

[经验分享] OpenStack 认证服务 KeyStone部署(三)

[复制链接]

尚未签到

发表于 2017-6-26 22:38:30 | 显示全部楼层 |阅读模式
Keystone 介绍
  Keystone作用:


  • 用户与认证:用户权限与用户行为跟踪;
  • 服务目录:提供一个服务目录,包括所有服务项和相关Api的断点
  • SOA相关知识
  Keystone主要两大功能用户认证和服务目录(相当于一个注册中心)


  • 用户认证名词介绍
  User:用户
 它是用一个数字代表使用openstack云服务的一个人、系统、或服务。身份验证服务将会验证传入的由用户声明将调用的请求
 一个租户可以有多个用户
 一个用户可以属于一个或多个租户
 用户对租户和操作权限由用户在租户中承担的角色来决定。
  Project:项目
 它是各个服务中的一些可以访问的资源集合或者说叫资源组。它是一个容器,用于组织和隔离资源,或标识对象。
  Token:令牌
  Role:角色
代表一组用户可以访问的资源权限,例如Nova中的虚拟机、Glance中的镜像。


  • 服务目录两大名词介绍
  Service:服务
Service即服务,如Nova、Glance、Swift。根据前三个概念(User,Project和Role)一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个user尝试着访问其租户内的service时,他必须知道这个service是否存在以及如何访问这个service。
  Endpoint:端点
Endpoint翻译为“端点”,我们可以理解它是一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道他的endpoint。Endpoint的每个URL都对应一个服务实例的访问地址,并且具有public、orivate和admin这三种权限。pubic url可以完全被全局访问,private url只能被局域网访问,admin url被从常规的访问中分离。

KeyStone安装
   DSC0000.png



yum install -y openstack-keystone httpd mod_wsgi memcached python-memcached

  提示: wsgi是python一个cgi的接口

KeyStone配置

编辑文件/etc/keystone/keystone.conf,我们管理keystone只需要修改keystone的配置文件即可。
  备注:在配置文件里面以[xxx]里面的内容叫做配置栏目(类似于mysql配置文件[mysqld])


  • [DEFAULT]部分,定义初始管理令牌的值,我们使用openssl生成一个随机值。



[iyunv@linux-node1 ~]# openssl rand -hex 10
07081849f55281652
[iyunv@linux-node1 ~]# vim /etc/keystone/keystone.conf
[DEFAULT]
admin_token = 07081849f55281652dac
  提示:keystone默认没有用户,需要进行创建用户。这样我们在配置文件中加入admin_token,在没有用户的情况下可以使用admin_token进行访问。还可以设置不用用户名和密码。简单来说admin_token就是初始化时候超级管理员的用户。


  • [database]部分,配置数据库访问:



[database]
connection = mysql+pymysql://keystone:keystone@192.168.137.11/keystone

  提示:用户名:密码@数据库地址/库名称


  • [token]部分,配置Fernet UUID令牌的提供者
  提供令牌有四种方式[fernet|pkiz|pki|uuid]默认是uuid。
   DSC0001.png



[token]
provider = fernet
driver = memcache
  默认是存储在sql中,我们需要将它修改为memcache


  • [memcache]部分,配置memcache的连接地址和端口



[memcache]
servers = 192.168.137.11:11211


初始化数据库



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

  自动找到keystone配置文件里的mysql连接,来帮我们创建数据库中的表。


  • 我们为什么要使用keystone用户去同步数据库呢?
  因为同步数据库会在/var/log/keystone目录下去写日志,如果使用root权限同步,当keystone用户启动服务时读取这个日志文件,那么它将无法进行读取(权限问题),会出现启动错误的情况。
  检查表是否创建成功



mysql -h 192.168.137.11 -ukeystone -pkeystone -e "use keystone;show tables;"

  提示:如果查看表的时候发现没有,通过日志/var/log/keystone/keystone.log排查报错信息。

初始化Fernet keys
  创建相关的证书



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

  执行完命令之后会在/etc/keystone下生成fernet-keys目录,它的权限是keystone里面存放这一些相关证书。
  提示:我们要注意/etc/keystone目录下文件的权限。
   DSC0002.png

memcached启动和设置



systemctl enable memcached.service
systemctl start memcached.service

  查看配置文件/etc/sysconfig/memcached


  • PORT="11211"  # 端口号
  • USER="memcached"  # 用户
  • MAXCONN="1024"    # 最大连接数
  • CACHESIZE="64"  # 大小64MB
  netstat -ntlp检查服务端口是否存在
   DSC0003.png

apache配置


  • 配置/etc/httpd/conf/httpd.conf文件,配置ServerName 选项为控制节点



[iyunv@linux-node1 ~]# vim /etc/httpd/conf/httpd.conf
ServerName 192.168.137.11:80


  • 创建配置文件/etc/httod/conf.d/wsgi-keystone.conf



[iyunv@linux-node1 ~] vim /etc/httpd/conf.d/wsgi-keystone.conf
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
ErrorLogFormat "%{cu}t %M"
ErrorLog /var/log/httpd/keystone-error.log
CustomLog /var/log/httpd/keystone-access.log combined
<Directory /usr/bin>
Require all granted
</Directory>
</VirtualHost>


  • apache启动并设置开机自启动



systemctl enable httpd.service
systemctl start httpd.service


  • netstat -ntlp检查服务端口是否存在
   DSC0004.png
  查看日志 /var/log/keystone/keystone.log 是否有报错信息


  • 排错,开启debug模式



vim /etc/keystone/keystone.conf
[DEFAULT]
debug = true

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388419-1-1.html 上篇帖子: Delete duplicate OpenStack hypervisors and services 下篇帖子: 【openStack】Libcloud 如何支持 keystone V3?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表