1.安装Keystone组件的必要软件包
[root@controller ~]# yum -y install openstack-keystone httpd mod_wsgi
#Keystone实际是运行在Web服务器上的一款支持Web服务器网关接口(Web Server Gateway Interface, WSGI)的Web应用。因此这里安装了3个软件:“openstack-keystone”“httpd”“mod_wsgi”。其中“openstack-keystone”是Keystone的软件包;“httpd”是阿帕奇(Apache)Web服务器的软件包名;“mod_wsgi”是使Web服务器支持WSGI的插件。
2.数据库配置
第1步,用下面的方法进入MariaDB数据库服务器。
[root@controller ~]# mysql -uroot -p000000
第2步,新建“keystone”数据库。
MariaDB [(none)]> CREATE DATABASE keystone;
第3步,给用户授权使用新建数据库。
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY '000000';
GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'%' IDENTIFIED BY '000000';
#上面两条语句把“keystone”数据库的所有表(keystone.*)的所有权限(ALL PRIVILEGES)授予本地主机('localhost' )及任意远程主机('%')中名为“keystone”的用户,验证密码为“000000”。这里的“keystone”用户是安装Keystone组件时自动生成的系统用户。
3.修改Keystone配置文件
打开配置文件
[root@controller ~]# vi /etc/keystone/keystone.conf
编辑配置文件(将匹配到的内容修改为以下内容)
第1步,修改“[database]”部分实现与数据库连接。
connection = mysql+pymysql://keystone:000000@controller/keystone
#以上代码配置数据库连接信息,用“keystone”用户和密码“000000”去连接“controller”主机中的名为“keystone”的数据库。
第2步,修改“[token]”部分配置令牌的加密方式。
provider = fernet
#“Fernet Token”是一种令牌加密格式。一个“Fernet Token”是一个很长的字符串,在这个字符串中存储了被加密的用户信息、权限信息、过期时间信息等。
4.初始化Keystone的数据库
[root@controller ~]# su keystone -s /bin/sh -c "keystone-manage db_sync"
#“su keystone”:su命令用于用户切换。这里切换到“keystone”用户,该用户已经拥有对“keystone”数据库的管理权限。
#“-s /bin/sh”:-s为su命令的选项,指定用什么编译器(Shell)来执行命令,“/bin/sh”就是指定的编译器。
#“-c”:su命令的选项,在其后引号内的是具体执行的命令。
#"keystone-manage db_sync"实现了数据同步到数据库。
5.初始化Fernet密钥库
#以下命令将自动创建“/etc/keystone/fernet-keys/”目录,并在目录下生成两个Fernet密钥。这两个密钥用于加密和解密令牌。
[root@controller ~]# keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
#以下命令将自动创建“/etc/keystone/credential-keys/”目录,并在目录下生成两个Fernet密钥。这两个密钥用于加密解密用户凭证。
[root@controller ~]# keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
6.初始化用户身份认证信息
root@controller ~]# 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
7.配置Web服务(一)
[root@controller ~]# ln -s /usr/share/keystone/wsgi-keystone.conf /etc/httpd/conf.d/
#该命令将“wsgi-keystone.conf”文件软链接到“/etc/httpd/conf.d/”目录。因为“/etc/httpd/conf.d/”目录下的“conf”文件都是Apache服务器的配置文件,所以这个命令让“wsgi-keystone.conf”成为Apache服务器的配置文件之一,让Apache服务器能够应用前面安装的“mod_wsgi”插件以支持WSGI协议。
8.配置Web服务(二)
#修改Apache服务器配置并启动Apache服务
[root@controller ~]# vi /etc/httpd/conf/httpd.conf
#重启Apache服务
[root@controller ~]# systemctl enable httpd
[root@controller ~]# systemctl start httpd
9.创建初始化环境变量文件
[root@controller ~]# vi admin-login
10.导入环境变量进行验证
[root@controller ~]# source admin-login
[root@controller ~]# export -p