Keystone 安装

执行范围#

仅控制节点(controller / 11.0.1.30)

Keystone 是 OpenStack 的身份认证中心,所有服务 API 调用均须先通过 Keystone 获取 Token。

1. 创建数据库#

Terminal window
mysql -uroot -p000000 -e "CREATE DATABASE IF NOT EXISTS keystone;"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '000000';"
mysql -uroot -p000000 -e "GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';"

2. 安装软件包#

Terminal window
yum install -y openstack-keystone httpd mod_wsgi

3. 配置 /etc/keystone/keystone.conf#

Terminal window
crudini --set /etc/keystone/keystone.conf database connection mysql+pymysql://keystone:000000@controller/keystone
crudini --set /etc/keystone/keystone.conf token provider fernet

4. 初始化数据库与 Fernet 密钥#

Terminal window
su -s /bin/sh -c "keystone-manage db_sync" keystone
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

5. Bootstrap 引导#

Terminal window
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

6. 配置 Apache#

Terminal window
sed -i 's/#ServerName www.example.com:80/ServerName controller/g' /etc/httpd/conf/httpd.conf
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
systemctl enable httpd.service
systemctl restart httpd.service

7. 创建域、项目与用户#

先设置 admin 认证环境:

Terminal window
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_VERSION=3

创建资源:

Terminal window
openstack domain create --description "Default Domain" default
openstack project create --domain default --description "Admin project" myadmin
openstack user create --domain default --password 000000 myadmin
openstack role add --project myadmin --user myadmin admin
# 切换为 myadmin 上下文
export OS_USERNAME=myadmin
export OS_PROJECT_NAME=myadmin
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_DOMAIN_NAME=default
openstack project delete admin
openstack project set --name admin --domain default --description "Admin Project" --enable myadmin
export OS_PROJECT_NAME=admin
openstack user delete admin
openstack user set --name admin --domain default --project admin --project-domain default \
--password 000000 --enable myadmin
# 恢复 admin 用户上下文
export OS_USERNAME=admin
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_DOMAIN_NAME=default
openstack role add --project admin --user admin admin
openstack project create --domain default --description "Service Project" service
openstack project create --domain default --description "Demo Project" demo
openstack user create --domain default --password 000000 demo
openstack role create user
openstack role add --project demo --user demo user

8. 生成 openrc 文件#

/etc/keystone/admin-openrc.sh

Terminal window
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

/etc/keystone/demo-openrc.sh

Terminal window
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=demo
export OS_USERNAME=demo
export OS_PASSWORD=000000
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2

9. 验收#

Terminal window
systemctl is-active httpd
curl -s http://controller:5000/v3
source /etc/keystone/admin-openrc.sh
openstack token issue
openstack user list # 包含 admin

此后所有 openstack 命令须先执行: source /etc/keystone/admin-openrc.sh

下一步:Glance 安装

文章目录

文章目录