欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos7-1810部署2节点OpenStack的R版本 —— 三、安装keystone

程序员文章站 2022-03-07 11:33:18
...

参考官方文档:https://docs.openstack.org/install-guide/index.html

https://docs.openstack.org/install-guide/openstack-services.html#minimal-deployment-for-rocky


三、安装keystone(控制节点)

centos7-1810部署2节点OpenStack的R版本 —— 三、安装keystone

 

目录

三、安装keystone(控制节点)

1、概述:

2、安装和配置

(1)前提条件:

(2)安装和配置:

(3)配置Apache HTTP服务器

(4)完成安装

3、创建域,项目,用户和角色

4、验证操作

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

(1)创建脚本

(2)使用脚本


1、概述:

OpenStack Identity服务提供了一个集成点,用于管理身份验证,授权和服务目录。

身份服务通常是用户与之交互的第一项服务。身份验证后,最终用户可以使用其身份访问其他OpenStack服务。同样,其他OpenStack服务利用身份服务来确保用户是他们所说的人,并发现其他服务在部署中的位置。身份服务还可以与某些外部用户管理系统(例如LDAP)集成。

用户和服务可以使用由身份服务管理的服务目录来查找其他服务。顾名思义,服务目录是OpenStack部署中可用服务的集合。每个服务可以具有一个或多个端点,并且每个端点可以是以下三种类型之一:admin,internal或public。在生产环境中,出于安全原因,不同的终结点类型可能驻留在暴露给不同类型用户的单独网络上。例如,公共API网络可能在Internet上可见,因此客户可以管理其云。admin API网络可能仅限于管理云基础架构的组织内的运营商。内部API网络可能仅限于包含OpenStack服务的主机。此外,OpenStack支持多个区域以实现可伸缩性。RegionOne区域。身份服务中创建的区域,服务和端点共同构成了部署的服务目录。部署中的每个OpenStack服务都需要一个服务条目,并在Identity服务中存储相应的端点。这可以在安装和配置了身份服务之后完成。

身份服务包含以下组件:

服务器

集中式服务器使用RESTful接口提供身份验证和授权服务。

driver

驱动程序或服务后端已集成到集中式服务器。它们用于访问OpenStack外部存储库中的身份信息,并且可能已经存在于部署OpenStack的基础架构中(例如,SQL数据库或LDAP服务器)。

模组

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

2、安装和配置

(1)前提条件:

  • 使用数据库访问客户端以root用户身份连接到数据库服务器:
mysql -u root -p
  • 创建keystone数据库:
MariaDB [(none)]> CREATE DATABASE keystone;
  • 授予对keystone数据库的适当访问权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
IDENTIFIED BY 'keystone';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
IDENTIFIED BY 'keystone';
  • 退出数据库访问客户端。

(2)安装和配置:

  • 运行以下命令以安装软件包:
yum install openstack-keystone httpd mod_wsgi
  • 编辑/etc/keystone/keystone.conf文件并完成以下操作:

在该[database]部分中,配置数据库访问:

[database]
# ...
connection = mysql+pymysql://keystone:[email protected]/keystone

centos7-1810部署2节点OpenStack的R版本 —— 三、安装keystone

 

在该[token]部分中,配置Fernet令牌提供者:

[token]
# ...
provider = fernet
  • 填充身份服务数据库:
su -s /bin/sh -c "keystone-manage db_sync" keystone

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

  • 初始化Fernet**存储库:
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
  • 引导身份服务:
keystone-manage bootstrap --bootstrap-password admin \
  --bootstrap-admin-url http://controller:5000/v3/ \
  --bootstrap-internal-url http://controller:5000/v3/ \
  --bootstrap-public-url http://controller:5000/v3/ \
  --bootstrap-region-id RegionOne

(3)配置Apache HTTP服务器

  • 编辑/etc/httpd/conf/httpd.conf文件并配置 ServerName选项以引用控制器节点:
ServerName controller
  • 创建/usr/share/keystone/wsgi-keystone.conf文件链接:
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

(4)完成安装

  • 启动Apache HTTP服务,并将其配置为在系统启动时启动:
# systemctl enable httpd.service
# systemctl start httpd.service
  • 配置管理帐户
export OS_USERNAME=admin
export OS_PASSWORD=admin
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3

 

3、创建域,项目,用户和角色

身份服务为每个OpenStack服务提供身份验证服务。身份验证服务使用域,项目,用户和角色的组合。

1.尽管本指南的keystone引导程序步骤中已经存在“默认”域,但是创建新域的正式方法是:

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

2.本指南使用一个服务项目,其中包含您添加到环境中的每个服务的唯一用户。创建service 项目:

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

3.常规(非管理员)任务应使用没有特权的项目和用户。例如,本指南创建myproject项目和myuser 用户。

  • 创建myproject项目:
openstack project create --domain default \
  --description "Demo Project" myproject
  • 创建myuser用户:
openstack user create --domain default \
  --password-prompt myuser
  • 创建myrole角色:
openstack role create myrole
  • myrole角色添加到myproject项目和myuser用户:
openstack role add --project myproject --user myuser myrole

4、验证操作

在控制器节点上执行这些命令:

1.取消设置临时 变量OS_AUTH_URLOS_PASSWORD环境变量:

unset OS_AUTH_URL OS_PASSWORD

2.以admin用户身份请求身份验证令牌:

此命令使用admin用户密码。

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

3.作为myuser上一节中创建的用户,请请求认证令牌:

openstack --os-auth-url http://controller:5000/v3 \
  --os-project-domain-name Default --os-user-domain-name Default \
  --os-project-name myproject --os-username myuser token issue

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

前面的部分使用了环境变量和命令选项的组合,以通过openstack客户端与Identity Service进行交互 。为了提高客户端操作的效率,OpenStack支持简单的客户端环境脚本,也称为OpenRC文件。这些脚本通常包含所有客户端的通用选项,但也支持唯一选项。

(1)创建脚本

admindemo 项目以及用户创建客户端环境脚本。本指南的后续部分将参考这些脚本为客户端操作加载适当的凭据。

客户端环境脚本的路径不受限制。为了方便起见,您可以将脚本放置在任何位置,但是请确保脚本可以访问并且位于适合您的部署的安全位置,因为它们确实包含敏感的凭据。

  • 创建和编辑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
export OS_AUTH_URL=http://controller:5000/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=myproject
export OS_USERNAME=myuser
export OS_PASSWORD=myuser
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

(2)使用脚本

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

  • 加载admin-openrc文件以使用身份服务的位置以及admin项目和用户凭据填充环境变量:
. admin-openrc
  • 请求身份验证令牌:
openstack token issue

 

 

相关标签: 云计算 云计算