OpenStack-M版(Mitaka)搭建- – -身份认证服务(Keystone)篇

转载请注明:姬子的博客 » OpenStack-M版(Mitaka)搭建- – -身份认证服务(Keystone)篇

Keystone

作为 OpenStack 的核心组件之一,为Nova、Glance、Swift、Cinder、Neutron和Horizon之间的通信提供认证服务。

包括:

1、管理用户及其权限

2、维护 OpenStack Services 的 Endpoint

3、Authentication(认证)和 Authorization(鉴权)

一、安装配置Keystone

以下操作均使用root权限并在controller节点执行

1、创建数据库及管理员令牌

mysql -u root -p

创建Keystone数据库

CREATE DATABASE keystone;

对``keystone``数据库授予恰当的权限(替换“123456”为你选的密码)

GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \  IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \  IDENTIFIED BY '123456';

退出数据库

exit

生成一个随机值在初始的配置中作为管理员的令牌(将生成的值复制粘贴到记事本保存好!)

openssl rand -hex 10

2、安装组件

安装后禁止keystone 服务自动启动

echo "manual" > /etc/init/keystone.override

安装包

apt-get install keystone apache2 libapache2-mod-wsgi

编辑文件 /etc/keystone/keystone.conf 

在``[DEFAULT]``部分,定义初始管理令牌的值(将“10c8d32f5b7177240ffe”替换为你刚才保存的令牌)

[DEFAULT]
admin_token = 10c8d32f5b7177240ffe

在 [database] 部分,配置数据库访问(替换123456

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

在``[token]``部分,配置Fernet UUID令牌的提供者

[token]
provider = fernet

初始化身份认证服务的数据库

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

初始化Fernet keys

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

配置apache http服务器

编辑``/etc/apache2/apache2.conf``文件,为控制节点配置``ServerName``选项

ServerName controller

使用下面的内容创建``/etc/apache2/sites-available/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/apache2/keystone.log
    CustomLog /var/log/apache2/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/apache2/keystone.log
    CustomLog /var/log/apache2/keystone_access.log combined    
    <Directory /usr/bin>
        Require all granted   
    </Directory>
    </VirtualHost>

开启认证服务虚拟主机

ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled

重启Apache HTTP服务器

service apache2 restart
rm -f /var/lib/keystone/keystone.db

3、配置服务实体和API端点

设置环境变量

vi /etc/profile

将以下内容写入环境变量(替换“10c8d32f5b7177240ffe”为你的管理员令牌)

export OS_TOKEN=10c8d32f5b7177240ffe
export OS_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3

保存退出,重启机器。

创建服务实体和身份认证服务

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

创建认证服务的 API 端点

openstack endpoint create --region RegionOne \  
identity public http://controller:5000/v3
openstack endpoint create --region RegionOne \  
identity internal http://controller:5000/v3
openstack endpoint create --region RegionOne \  
identity admin http://controller:35357/v3

4、创建域、项目、用户和角色

创建域``default``

openstack domain create --description "Default Domain" default

创建 admin 项目

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

创建 admin 用户(输入一个你为admin选的密码并记下)

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

创建 admin 角色

openstack role create admin

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

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

创建``service``项目

openstack project create --domain default \  
--description "Service Project" service

创建``demo`` 项目(演示项目)

openstack project create --domain default \  
--description "Demo Project" demo

创建``demo`` 用户(输入一个你为demo选的密码并记下)

openstack user create --domain default \  
--password-prompt demo

创建 user 角色

openstack role create user

添加 user``角色到 ``demo 项目和用户

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

5、验证操作

关闭临时认证令牌机制

编辑 /etc/keystone/keystone-paste.ini 文件,
从``[pipeline:public_api]``,[pipeline:admin_api]``和``[pipeline:api_v3]``部分
删除``admin_token_auth

添加环境变量,重置``OS_TOKEN``和``OS_URL`` 环境变量

vi /etc/profile
unset OS_TOKEN OS_URL

保存退出,重启机器。

重启后,继续以下步骤

作为 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

作为``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

6、创建OpenStack客户端环境脚本

创建并编辑文件 "admin-openrc" 并添加如下内容(将"123456" 替换为你在认证服务中为 admin 用户选择的密码)

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=123456
export OS_AUTH_URL= 
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

创建并编辑文件 "demo-openrc" 并添加如下内容(将"123456" 替换为你在认证服务中为demo 用户选择的密码)

export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=123456
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

加载``admin-openrc``文件来身份认证服务的环境变量位置和``admin``项目和用户证书

. admin-openrc

请求认证令牌

openstack token issue

至此,身份认证服务(Keystone)篇结束

下一篇为:镜像服务(Glance)篇

Done All ! Enjoy Yourself !

See You Again !




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值