安装配置并验证Keystone
Keystone为OpenStack项目中的其他服务组件提供了身份认证和授权功能。
![](/doc_center/source/zh/kunpengcpfs/ecosystemEnable/OpenStack/public_sys-resources/note_3.0-zh-cn.png)
在控制节点安装配置并验证Keystone。
创建Keystone数据库
- 进入数据库。
1
mysql -u root -p
- 创建Keystone数据库。
1
CREATE DATABASE keystone;
- 授权,允许本地及远程服务器访问mysql,<PASSWORD>为数据库用户root的密码。
1 2
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '<PASSWORD>'; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '<PASSWORD>';
注意将<PASSWORD>修改为需要的密码。(openstack的账户密码设置中,不支持特殊符号#;openstack对密码的复杂度没有要求,可以设置为不带特殊字符的密码;若在设置密码时,一定要包含特殊符号,openstack仅支持如下特殊字符:& = $ - _ . + ! * ( ) )。
- 退出数据库。
1
exit
安装Keystone
- 安装Keystone包。
1
yum -y install openstack-keystone httpd mod_wsgi
- 编辑“/etc/keystone/keystone.conf”文件。
在[database]部分添加如下内容:
1
connection = mysql+pymysql://keystone:<PASSWORD>@controller/keystone
在[token]部分添加如下内容:
1
provider = fernet
<PASSWORD>为用户为数据库设置的密码。
- 填充Identity服务数据库。
1
su -s /bin/sh -c "keystone-manage db_sync" keystone
- 初始化Fernet
密钥 存储库。1 2
keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
- 引导身份服务。
1 2 3 4 5
keystone-manage bootstrap --bootstrap-password <PASSWORD> \ --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
注意修改<PASSWORD>为用户admin的密码。
配置Apache HTTP服务
- 编辑“/etc/httpd/conf/httpd.conf”文件,配置“ServerName”选项为控制节点。
系统默认注释掉此项,需要找到该项并且修改。
- 创建“/usr/share/keystone/wsgi-keystone.conf”文件的链接。
1
ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
- 启动Apache HTTP服务并配置其随系统启动。
1 2
systemctl enable httpd.service systemctl start httpd.service
- 配置管理账户。
1 2 3 4 5 6 7
export OS_USERNAME=admin export OS_PASSWORD=<PASSWORD> 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
注意修改<PASSWORD>为用户admin的密码。
创建域、项目、用户和角色
- 创建新域。
1
openstack domain create --description "An Example Domain" example
- 创建Service项目。
1
openstack project create --domain default --description "Service Project" service
- 创建普通项目myproject(常规任务使用)。
1
openstack project create --domain default --description "Demo Project" myproject
- 创建普通用户myuser(普通用户使用)。
1
openstack user create --domain default --password-prompt myuser
并创建密码。
- 创建角色。
1
openstack role create myrole
- 将myrole角色添加到myproject项目和myuser用户。
1
openstack role add --project myproject --user myuser myrole
验证Keystone
- 取消环境变量。
1
unset OS_AUTH_URL OS_PASSWORD
- 作为admin用户,请求身份验证令牌。
1 2 3
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
输入密码:<PASSWORD>
密码为自定义,为方便阅读,本文中全部以<PASSWORD>代替,此处的<PASSWORD>为admin用户的密码。
- 作为myuser上一节中创建的用户,请求身份验证令牌。
1 2 3
openstack --os-auth-url http://controller:5000/v3 \ --os-project-domain-name Default --os-user-domain-name Default \ --os-project-name myproject --os-username myuser token issue
输入密码:<PASSWORD>
- 创建OpenStack客户端环境脚本。
- 创建并编辑admin-openrc文件。
1
vim /etc/keystone/admin-openrc
并添加如下内容:
1 2 3 4 5 6 7 8
export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=<PASSWORD> export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
- 创建和编辑demo-openrc文件。
1
vim /etc/keystone/demo-openrc
并添加以下内容:
1 2 3 4 5 6 7 8
export OS_PROJECT_DOMAIN_NAME=Default export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_NAME=myproject export OS_USERNAME=myuser export OS_PASSWORD=<PASSWORD> export OS_AUTH_URL=http://controller:5000/v3 export OS_IDENTITY_API_VERSION=3 export OS_IMAGE_API_VERSION=2
admin-openrc为admin用户的登录凭据。
- 创建并编辑admin-openrc文件。
- 使用脚本。
1 2
source /etc/keystone/admin-openrc openstack token issue
父主题: 安装并验证