本篇文章是本系列的第二篇文章,将继续进行OpenStack的安装

三、安装认证服务

3.1 (控制节点)创建并配置keystone数据库

  • 连接数据库

1# mysql -u root -pfuai123

注意:fuai123是之前设置的数据库密码

  • 创建数据库

1MariaDB [(none)]> CREATE DATABASE keystone;
  • 设置keystone数据库的访问权限

1MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \
2IDENTIFIED BY 'fuai123';
3MariaDB [(none)]> GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' \
4IDENTIFIED BY 'fuai123';

3.2 (控制节点)安装并配置服务 
- 安装软件包

1# yum install openstack-keystone httpd mod_wsgi -y
  • 编辑/etc/keystone/keystone.conf并设置以下内容

1[database]
2connection = mysql+pymysql://keystone:fuai123@controller/keystone
3...
4
5[token]
6provider = fernet
7...
  • 导入keystone数据库表结构、

1# su -s /bin/sh -c "keystone-manage db_sync" keystone
  • 初始化

1# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
2# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
  • 引导认证服务

1# keystone-manage bootstrap --bootstrap-password fuai123 \
2  --bootstrap-admin-url http://controller:35357/v3/ \
3  --bootstrap-internal-url http://controller:5000/v3/ \
4  --bootstrap-public-url http://controller:5000/v3/ \
5  --bootstrap-region-id RegionOne

3.3 (控制节点)配置apache服务 
- 编辑/etc/httpd/conf/httpd.conf文件配置如下内容

1ServerName controller
  • 创建链接文件

1# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
  • 设置服务的开机启动

1# systemctl enable httpd.service
2# systemctl start httpd.service

3.4 (控制节点)创建相关域、项目、用户和角色 
- 导入管理员环境变量信息

1# export OS_USERNAME=admin
2# export OS_PASSWORD=fuai123
3# export OS_PROJECT_NAME=admin
4# export OS_USER_DOMAIN_NAME=Default
5# export OS_PROJECT_DOMAIN_NAME=Default
6# export OS_AUTH_URL=http://controller:35357/v3
7# export OS_IDENTITY_API_VERSION=3
  • 创建域

 1# openstack domain create --description "An Example Domain" example
2
3+-------------+----------------------------------+
4| Field       | Value                            |
5+-------------+----------------------------------+
6| description | An Example Domain                |
7| enabled     | True                             |
8| id          | 28d83de95e064d909f3c82de49e49982 |
9| name        | example                          |
10| tags        | []                               |
11+-------------+----------------------------------+
  • 创建service项目

 1# openstack project create --domain default \
2  --description "Service Project" service
3
4+-------------+----------------------------------+
5| Field       | Value                            |
6+-------------+----------------------------------+
7| description | Service Project                  |
8| domain_id   | default                          |
9| enabled     | True                             |
10| id          | d5442e942ee1481281d78e0a81d19601 |
11| is_domain   | False                            |
12| name        | service                          |
13| parent_id   | default                          |
14| tags        | []                               |
15+-------------+----------------------------------+
  • 创建demo项目

 1# openstack project create --domain default \
2  --description "Demo Project" demo
3
4+-------------+----------------------------------+
5| Field       | Value                            |
6+-------------+----------------------------------+
7| description | Demo Project                     |
8| domain_id   | default                          |
9| enabled     | True                             |
10| id          | 3f3f3e87192d4b5bb32b2a9db39a4be0 |
11| is_domain   | False                            |
12| name        | demo                             |
13| parent_id   | default                          |
14| tags        | []                               |
15+-------------+----------------------------------+

注意:这里要设置demo用户的密码,为了统一我设置的fuai123

 1# openstack user create --domain default \
2  --password-prompt demo
3
4User Password:
5Repeat User Password:
6+---------------------+----------------------------------+
7| Field               | Value                            |
8+---------------------+----------------------------------+
9| domain_id           | default                          |
10| enabled             | True                             |
11| id                  | daf47114440741d3b213a5eb58a58006 |
12| name                | demo                             |
13| options             | {}                               |
14| password_expires_at | None                             |
15+---------------------+----------------------------------+
  • 创建用户角色

1# openstack role create user
2
3+-----------+----------------------------------+
4| Field     | Value                            |
5+-----------+----------------------------------+
6| domain_id | None                             |
7| id        | 10a36ef5803045dda2df3ed3480ce2bd |
8| name      | user                             |
9+-----------+----------------------------------+
  • 给demo用户添加user角色

1# openstack role add --project demo --user demo user

3.5 (控制节点)验证操作

  • 解除环境变量的设置

1# unset OS_AUTH_URL OS_PASSWORD
  • 使用admin用户请求token

注意:这里需要输入admin的密码,我得是fuai123

 1# openstack --os-auth-url http://controller:35357/v3 \
2  --os-project-domain-name Default --os-user-domain-name Default \
3  --os-project-name admin --os-username admin token issue
4
5Password:
6+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7| Field      | Value                                                                                                                                                                                   |
8+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9| expires    | 2018-04-25T12:09:55+0000                                                                                                                                                                |
10| id         | gAAAAABa4GID_fKwaNHti1QiDmjG4Ox0113RmaZ7DpMytBBB6gEsMoPTrHArevpYK1-gqv3UOPPSb6emHe29YfxxsXZBqfiq3C4IijCm5e-XetfgXarAsfgvlzAsao6jFkmLKbhMklzBZOA7ZH0t_TZJi_SuD5lkVsQv5wdWlPbQlgA4VvS0vmA |
11| project_id | c4e73f33137b49dcb1ff949f3d95de36                                                                                                                                                        |
12| user_id    | 88c329ab63b34c57a8996c5237cb1ba3                                                                                                                                                        |
13+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  • 使用demo用户请求token

 1# openstack --os-auth-url http://controller:5000/v3 \
2  --os-project-domain-name Default --os-user-domain-name Default \
3  --os-project-name demo --os-username demo token issue
4
5Password:
6+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7| Field      | Value                                                                                                                                                                                   |
8+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
9| expires    | 2018-04-25T12:12:28+0000                                                                                                                                                                |
10| id         | gAAAAABa4GKcKjwpbL2NqgpDXk1lrkmwEjbj_gLfDf3DmR2xmI9TfA4W85ZSX8ql-Jjol8o3wmbWT2CL4--Ekhi3eciwtRYdLZke3Pf0jCRsZBpFeWSQQSb5yLpl5haQ78thAyBusUfkZTB7i1oOwjyl6_16OyJYpMm74l9IpWI6pqaIy4AKjLE |
11| project_id | 3f3f3e87192d4b5bb32b2a9db39a4be0                                                                                                                                                        |
12| user_id    | daf47114440741d3b213a5eb58a58006                                                                                                                                                        |
13+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

3.6 (控制节点)创建环境变量脚本

  • 创建admin-openrc文件增加如下内容

1export OS_PROJECT_DOMAIN_NAME=Default
2export OS_USER_DOMAIN_NAME=Default
3export OS_PROJECT_NAME=admin
4export OS_USERNAME=admin
5export OS_PASSWORD=fuai123
6export OS_AUTH_URL=http://controller:5000/v3
7export OS_IDENTITY_API_VERSION=3
8export OS_IMAGE_API_VERSION=2
  • 创建demo-openrc文件增加如下内容

1export OS_PROJECT_DOMAIN_NAME=Default
2export OS_USER_DOMAIN_NAME=Default
3export OS_PROJECT_NAME=demo
4export OS_USERNAME=demo
5export OS_PASSWORD=fuai123
6export OS_AUTH_URL=http://controller:5000/v3
7export OS_IDENTITY_API_VERSION=3
8export OS_IMAGE_API_VERSION=2
  • 验证下脚本的效果

 1# . admin-openrc
2# openstack token issue
3
4+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
5| Field      | Value                                                                                                                                                                                   |
6+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
7| expires    | 2018-04-25T12:18:13+0000                                                                                                                                                                |
8| id         | gAAAAABa4GP1AoWBOcAHW9w1nr2CNlBs3HqK1-bzXsDekLtiHiEtkWbpxPMiloUv2x3uhZ2kM7XJtP9V4Ugy9BMev9cvV1qy1GZh_U-EElJlLEf4IgBf4SiCGGd2BjQiq0cCT55y2cXK8pmRKZKIlzFUwoBCHpc75yqnEJk6Rz3Upsk7HYT3c0k |
9| project_id | c4e73f33137b49dcb1ff949f3d95de36                                                                                                                                                        |
10| user_id    | 88c329ab63b34c57a8996c5237cb1ba3                                                                                                                                                        |
11+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

至此,OpenStack认证服务已经安装验证完成,下面将进行镜像等组件的安装,具体请参见文章《OpenStack(Queens)详细安装部署(三)》