注意:在开始安装具体的 OpenStack 服务之前,请先备份一次我们已经安装好的两台 vmware-workstation 虚拟机。
备份虚拟机
关闭 2 台虚拟机,然后在 windows 资源管理器中找到安装好的虚拟机文件目录(这里是 d:\OpenStack-Train),复制一份到其他盘,作为备份。
备份虚拟机文件夹
做好的备份
备份好之后,开启控制节点的虚拟机(暂时不开计算节点的虚拟机,以防止服务安装进错误的主机)
在控制节点上进行如下操作以安装 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 BY ‘000000__’;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO ‘keystone’@’%’ IDENTIFIED BY ‘000000__’;
MariaDB [(none)]>exit
2、安装 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:000000@controller/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 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
创建 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 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://controller:5000/v3 \
—os-project-domain-name Default —os-user-domain-name Default \
—os-project-name admin —os-username admin token issue
密码为:000000
能获取到 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
使用脚本
cd /openrc/
. _admin_openrc
(注意前面的 “.”,当然也可以使用 source /openrc/admin_openrc 命令)
openstack token issue
同样能获取到 token。
进一步检查,使用命令:curl http://controller:5000,直接访问 keystone 的 API 地址,能够返回 json 表示安装成功。
至此,keystone 服务安装成功,下节安装镜像服务 glance。
https://blog.51cto.com/11694088/2459885