第三部分 安装身份认证服务keystone
注意:在开始安装具体的OpenStack服务之前,请先备份一次我们已经安装好的两台vmware-workstation虚拟机。
备份虚拟机
关闭2台虚拟机,然后在windows资源管理器中找到安装好的虚拟机文件目录(这里是d:\OpenStack-Train),复制一份到其他盘,作为备份。
备份虚拟机文件夹
做好的备份
备份好之后,开启控制节点的虚拟机(暂时不开计算节点的虚拟机,以防止服务安装进错误的主机)
在控制节点上进行如下操作以安装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';
安装keystone软件包
yum install openstack-keystone httpd mod_wsgi -y
修改配置文件
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
填充数据库
su -s /bin/sh -c "keystone-manage db_sync" keystone
上述命令执行后,可以到mysql数据库中查看keystone数据库中是否包含有表,如果有,则表示填充数据库成功
初始化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
创建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 project create --domain default --description "Service Project" service
创建user角色
openstack role create user
暂时不创建普通用户的项目和用户
验证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
能获取到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
使用脚本
. admin-openrc(注意前面的“.”,当然也可以使用source admin-openrc命令)
openstack token issue
同样能获取到token。
进一步检查,使用命令:curl http://ct:5000,直接访问keystone的API地址,能够返回json表示安装成功。
至此,keystone服务安装成功,下节安装镜像服务glance。