第三部分 安装身份认证服务keystone


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

备份虚拟机

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

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第1张图片

备份虚拟机文件夹


image.png

做好的备份


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


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


建立keystone数据库

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

数据库授权
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'KEYSTONE_DBPASS';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'KEYSTONE_DBPASS';

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第2张图片

安装keystone软件包
yum install openstack-keystone httpd mod_wsgi -y

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第3张图片

修改配置文件

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:KEYSTONE_DBPASS@ct/keystone
[token]
provider = fernet

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第4张图片

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第5张图片

填充数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone

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

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第6张图片

初始化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 ADMIN_PASS --bootstrap-admin-url http://ct:5000/v3/ --bootstrap-internal-url http://ct:5000/v3/ --bootstrap-public-url http://ct:5000/v3/ --bootstrap-region-id RegionOne 
(共5个参数)

修改apache配置
vim /etc/httpd/conf/httpd.conf
取消注释并修改:
ServerName ct

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第7张图片

创建wsgi配置文件软链接
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/

启动和开机自启动apache
systemctl enable httpd.service
systemctl restart httpd.service

初始化环境变量
export OS_USERNAME=admin
export OS_PASSWORD=ADMIN_PASS
export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_AUTH_URL=http://ct:5000/v3
export OS_IDENTITY_API_VERSION=3

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

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第8张图片

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第9张图片

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第10张图片

创建服务所使用的项目(注意:这一步和官方文档所述内容不一样
openstack project create --domain default --description "Service Project" service

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第11张图片

创建user角色
openstack role create user

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第12张图片

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

验证keystone服务
unset OS_AUTH_URL OS_PASSWORD
openstack --os-auth-url http://ct:5000/v3 --os-project-domain-name Default --os-user-domain-name Default --os-project-name admin --os-username admin token issue
密码为:ADMIN_PASS

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第13张图片

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

创建客户端环境变量脚本
vim 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://ct:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第14张图片

使用脚本
. admin-openrc(注意前面的“.”,当然也可以使用source admin-openrc命令)
openstack token issue

OpenStack Train版双节点安装(三)安装身份认证服务keystone_第15张图片

同样能获取到token。

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

image.png

至此,keystone服务安装成功,下节安装镜像服务glance。