注意:在开始安装具体的 OpenStack 服务之前,请先备份一次我们已经安装好的两台 vmware-workstation 虚拟机。

备份虚拟机

关闭 2 台虚拟机,然后在 windows 资源管理器中找到安装好的虚拟机文件目录(这里是 d:\OpenStack-Train),复制一份到其他盘,作为备份。

OpenStack Train版双节点安装(三)安装身份认证服务keystone - 图1

备份虚拟机文件夹

OpenStack Train版双节点安装(三)安装身份认证服务keystone - 图2

做好的备份

备份好之后,开启控制节点的虚拟机(暂时不开计算节点的虚拟机,以防止服务安装进错误的主机)

在控制节点上进行如下操作以安装 keystone

1、建立 keystone 数据库(在控制节点)

1)登录数据库,并创建keystone数据库

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE keystone;

2)数据库授权

MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’localhost’ IDENTIFIED BY000000__’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’ IDENTIFIED BY000000__’;
MariaDB [(none)]>exit
image.png

2、安装 keystone 软件包

yum install openstack-keystone httpd mod_wsgi -y

image.png
cp /etc/keystone/keystone.conf /etc/keystone/keystone.conf.bak
grep -Ev ‘^$|#’ /etc/keystone/keystone.conf.bak >/etc/keystone/keystone.conf
vim /etc/keystone/keystone.conf
在[database]和[token]区域加入下面 2 行:
[database]
connection = mysql+pymysql://keystone:000000@controller/keystone
[token]
provider = fernet

image.png

image.png

填充数据库

su -s /bin/sh -c “keystone-manage db_sync” keystone

上述命令执行后,可以到 mysql 数据库中查看 keystone 数据库中是否包含有表,如果有,则表示填充数据库成功

image.png

初始化 Fernet 密钥存储库

这是新版本的 OpenStack 的新功能,在 Train 版本下,keystone 不再使用简单的字符串作为临时 token,而是使用下面创建的 fernet 的用户来运行 keystone。同时,keystone 也不再对管理员用户和普通用户的服务端点区分使用不同的端口 5000 和 35357,而是只使用 5000 端口不再使用 35357 端口。
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 000000 \
—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
(共 5 个参数)

修改 apache 配置

vim /etc/httpd/conf/httpd.conf
取消注释并修改:
ServerName controller

image.png

创建 wsgi 配置文件软链接

ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

启动和开机自启动 apache

systemctl enable httpd.service
systemctl restart httpd.service
systemctl status httpd.service

初始化环境变量

export OS_USERNAME=admin
export OS_PASSWORD=000000
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_V/ERSION=3

创建 service 项目及角色

在上面的初始化 Fernet 密钥存储时候已经创建了 default 域、admin 项目和 admin 用户。(下面的 3 条命令必须要进行上面的初始化环境变量之后才能执行成功)

OpenStack Train版双节点安装(三)安装身份认证服务keystone - 图9

OpenStack Train版双节点安装(三)安装身份认证服务keystone - 图10

OpenStack Train版双节点安装(三)安装身份认证服务keystone - 图11

创建服务所使用的项目(注意:这一步和官方文档所述内容不一样)

openstack project create —domain default —description “Service Project” service

image.png

创建 user 角色

openstack role create user
image.png

暂时不创建普通用户的项目和用户

验证 keystone 服务

unset OS_AUTH_URL OS_PASSWORD
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
密码为:000000

image.png

能获取到 token 说明 keystone 安装成功。

创建客户端环境变量脚本

使用mkdir /openrc 创建环境变量存放目录。
mkdir /openrc
vim /openrc/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=000000
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
image.png

使用脚本

cd /openrc/
. _admin_openrc
(注意前面的 “.”,当然也可以使用 source /openrc/admin_openrc 命令)

openstack token issue
image.png

同样能获取到 token。

进一步检查,使用命令:curl http://controller:5000,直接访问 keystone 的 API 地址,能够返回 json 表示安装成功。
image.png

至此,keystone 服务安装成功,下节安装镜像服务 glance。
https://blog.51cto.com/11694088/2459885