温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

openstack-mitaka中Identity服务如何安装

发布时间:2021-11-16 10:30:32 来源:亿速云 阅读:121 作者:小新 栏目:云计算

这篇文章给大家分享的是有关openstack-mitaka中Identity服务如何安装的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Identity服务安装

Identity服务概述

OpenStack的Identity服务为管理认证、授权和service catalog服务提供了单点集成。其它OpenStack服务使用Identity服务作为一个通用的统一API。此外,提供有关用户信息,但该服务不包括在OpenStack(如LDAP服务)可以被集成进一个预先存在的基础设施。

为了从Identity服务获得效益,其它OpenStack服务需要与它进行协调工作。当一个OpenStack服务收到一个用户的请求时,它会用Identity服务来检查此用户是否获得request授权。

Identity服务包括以下组件:

Server

一个集中的服务器使用RESTful接口提供认证和授权服务。

Drivers

可以被集成到中央服务器的驱动程序或者服务后端。他们在OpenStack拓展库被用于访问身份信息,并且已经存在于部署了OpenStack的基础设施(例如,SQL数据库或LDAP服务)。

Modules

是个中间件模块,它运行在正使用身份服务OpenStack组件的地址空间。这些模块拦截服务请求,提取用户凭据,并将它们发送到中央服务器进行授权。中间件模块和OpenStack组件之间的集成使用Python的Web服务器网关接口。

当安装OpenStack的Identity服务时,你必须将每个服务注册到你的OpenStack安装里。Identity服务可以跟踪OpenStack服务安装,并且定位他们的网络。

安装和配置

本节将介绍如何在controller节点安装和配置OpenStack的Identity服务(代号keystone)。出于性能考滤,这种配置部署Fernet令牌和Apache HTTP服务器来处理请求。

先决条件

在配置OpenStack的Identity服务之前,必须创建一个数据库和管理令牌。

1.创建数据库,需要完成下面步骤

l用root账号登陆数据库

mysql -u root -p

l创建keystone数据库

CREATE DATABASE keystone;

l给keystone数据库授权

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

将KEYSTONE_DBPASS替换成合适的密码

l退出数据库

2.生成随机数来作用管理令牌,初始化配置时会用到

openssl rand -hex 10

安装和配置组件

1.运行下列命令来安装软件包

yum install openstack-keystone httpd mod_wsgi

2.编辑/etc/keystone/keystone.conf文件并完成下列步骤

l在[DEFAULT], 定义管理令牌

[DEFAULT]
...
admin_token = ADMIN_TOKEN

将ADMIN_TOKEN替换成之前生成的随机数

l在[database],配置数据库连接

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

将KEYSTONE_DBPASS替换成正确的数据库密码(数据库密码不能有特殊符号)

l在[token],配置Fernet令牌提供商

[token]
...
provider = fernet

3.填充Identity服务数据库

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

备注:忽略此处输出任何弃用信息。

4.初始化Fernet keys

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

配置Apache HTTP 服务器

1.编辑/etc/httpd/conf/httpd.conf,配置ServerName选项指向controller节点

ServerName controller

2.创建/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>

完成安装

启动Apached HTTP服务并配置开机自启动

systemctl enable httpd.service
systemctl start httpd.service

创建service entity和API endpoints

Identity服务提供服务目录和它们的位置。每个添加到OpenStack环境的服务都要求要有一个service entity和几个API endpoints在目录中。

先决条件

默认情况下,Identity数据库不包含任何信息来支持传统的身份验证和目录服务。必须用之前创建的临时身份令牌来初始化服务实体和API端点。

你必须通过带--os-token参数的命令或者设置OS_TOKEN环境变量来给OpenStack传递身份认证令牌。同样,你必须通过带有—os-url参数的命令或者设置OS_URL环境变量来给OpenStack传递Identity服务URL。下面步骤用设置环境变量的方式。

警告:出于安全,不要长时间用临时身份验证令牌初始化Identity服务

1.配置认证令牌

export OS_TOKEN=ADMIN_TOKEN

将ADMIN_TOKEN替换成之前生成的随机数

2.配置endpoint URL

export OS_URL=http://controller:35357/v3

3.配置Identity API版本

export OS_IDENTITY_API_VERSION=3

创建service entity和API端点

1.在OpenStack环境中Identity服务管理一个目录服务。服务使用目录来确定环境中其它可可用的服务。

执行下列命令来创建service entity

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

openstack-mitaka中Identity服务如何安装

2.在OpenStack环境,Identity服务管理相关服务API endpoints的目录。服务使用这个目录    来确定如何与环境中的其它服务通信。

OpenStack为每个服务提供三个API endpoint:admin, internal,和public。默认情况admin API endpoint 可以修改用户和租户,然而public和internal APIs 并允许这些操作。在生产环境中,出于安全原因,这些变量可能驻留在不同的网络上,服务于不同的用户类型。例如,Public API网络在互联网上可能被访问得到,所以客户可以管理他们的云。Admin API网络可能受限于在管理云基础设施的组织内进行操作。Internal API网络可能受限在包含OpenStack服务主机上。另外,OpenStack支持可扩展性的多区域。为简单起见,本教程为所有的endpoint使用管理网络并设置默认区域为RegionOne。

创建Identity服务的API endpoints

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

openstack-mitaka中Identity服务如何安装

openstack endpoint create --region RegionOne identity internal http://controller:5000/v3

openstack-mitaka中Identity服务如何安装

openstack endpoint create --region RegionOne identity admin http://controller:35357/v3

openstack-mitaka中Identity服务如何安装

创建domain, projects users和roles

Identity服务为每个OpenStack服务提供认证服务。认证服务将域,项目(租户)、用户和角色结合使用。

1.创建默认的域

openstack domain create --description "Default Domain" default

openstack-mitaka中Identity服务如何安装

2.在你的环境中为管理操作创建一个管理项目、用户和角色

l创建admin项目

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

openstack-mitaka中Identity服务如何安装

l创建admin用户

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

openstack-mitaka中Identity服务如何安装

l创建admin角色

openstack role create admin

openstack-mitaka中Identity服务如何安装

l将管理员角色添加到管理项目和用户中

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

3.本指南使用一个服务项目,该项目仅包含一个用户给每个你添加到环境中的服务使用。

创建服务项目

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

openstack-mitaka中Identity服务如何安装

4.常规(非管理员)的任务应该使用一个普通的项目和用户。作为一个例子,本指南将创建一个demo项目和用户。

l创建demo项目

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

openstack-mitaka中Identity服务如何安装

备注:当给这个项目创建额外的用户时不要重复这个步骤。

l创建demo用户

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

openstack-mitaka中Identity服务如何安装

l创建用户角色

openstack role create user

openstack-mitaka中Identity服务如何安装

l将用户角色添加到demo项目和用户中

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

验证操作

开始安装其它服务之前验证Identity服务是否正常安装。

以下操作在controller节点进行

1.出于安全考滤,禁用临时身份验证令牌机制:

编辑/etc/keystone/keystone-paste.ini文件,然后从[pipeline:public_api], [pipeline:admin_api], 和 [pipeline:api_v3]这三部分中移除admin_token_auth

2.撤消临时的OS_TOKEN 和 OS_URL环境变量

unset OS_TOKEN OS_URL

3.以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

openstack-mitaka中Identity服务如何安装

4.以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

openstack-mitaka中Identity服务如何安装

创建OpenStack客户端环境脚本

之前章节结合使用环境变量和命令行选项通过OpenStack客户端与Identity服务交互。为提高操作效率,OpenStack支持简单的客户端环境脚本既openrc文件。这些脚本通常包含所有客户端的常见选项,但也支持独特的选项。更多信息,请查看OpenStack End User Guide.

创建脚本

为admin及demo项目和用户创建客户端环境脚本

1.编辑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
export OS_AUTH_URL=http://controller:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

将ADMIN_PASS替换成正确的密码

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
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

将DEMO_PASS替换成正确的密码

使用脚本

作为一个特定的项目和用户来运行客户端,您可以在运行它们之前简单地加载相关的客户端环境脚本。例如:

1.加载admin-openrc文件

. admin-openrc

2.请求一个身份认证令牌

openstack token issue

感谢各位的阅读!关于“openstack-mitaka中Identity服务如何安装”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI