Openstack Keystone安装(一)
上一篇中我们完成了Openstack基本环境的安装。
在本篇中我们将安装并配置Openstack的公用核心组件Keystone。
Keystone的功能是为Openstack各个服务提供一个统一的用户身份认证模块,并提供统一的RESTful API供调用。
当然,我们主要安装的目标Swift也是依赖这一模块进行身份认证的。
安装并配置Keystone
Keystone只需要安装在Controller上即可。
配置数据库
我们首先来配置一下mysql。
用mysql -u root -p
登录mysql,然后运行下面的SQL语句
CREATE DATABASE keystone;
GRANT ALL PRIVILEGES ON keystone.* TO \'keystone\'@\'localhost\' IDENTIFIED BY \'2308020d\';
GRANT ALL PRIVILEGES ON keystone.* TO \'keystone\'@\'%\' IDENTIFIED BY \'2308020d\';
然后退出登录。上面的2308020d
是我随机生成的一段密码。
在继续下面的步骤之前,我们需要随机的生成一段Token。
$ openssl rand -hex 10
49f9e01220a3a7f0c41e
安装并配置组件
如果没有特殊说明,下面的bash操作一般是使用root用户。
为了防止服务自启抢占端口导致下面安装失败,我们先写keystone的override文件。
echo \"manual\" > /etc/init/keystone.override
1) 安装主要程序包
apt-get install keystone apache2 libapache2-mod-wsgi memcached python-memcache
执行这个命令即可。
2) 配置keystone
编辑文件 /etc/keystone/keystone.conf
首先修改[DEFAULT]
中的admin_token
值,修改为上面我们随机生成的内容。
[DEFAULT]
...
admin_token = 49f9e01220a3a7f0c41e
然后找到[database]
一段,进行数据库设置。
[database]
...
connection = mysql+pymysql://keystone:[email protected]/keystone
按照下面的文件内容继续修改文件:
[memcache]
...
servers = localhost:11211
...
[token]
...
provider = uuid
driver = memcache
...
[revoke]
...
driver = sql
(可选)如果希望看到更多的日志信息,可以把[DEFAULT]
中的verbose打开
[DEFAULT]
...
verbose = True
4) 用下面的方式重建数据库
su -s /bin/sh -c \"keystone-manage db_sync\" keystone
配置 Apache HTTP Server
由于Keystone基础认证服务是用过HTTP Server承载的,我们需要配置Apache使得用户可以通过HTTP访问Keystone服务。
在上面安装组件的过程中,已经安装上了Apache Server,所以我们直接进入配置阶段。
1) 编辑文件 /etc/apache2/apache2.conf
配置其中的 ServerName
ServerName controller
2) 用下面的内容建立文件 /etc/apache2/sites-available/wsgi-keystone.conf
Listen 5000
Listen 35357
<VirtualHost *:5000>
WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
<IfVersion >= 2.4>
ErrorLogFormat \"%{cu}t %M\"
</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
</VirtualHost>
<VirtualHost *:35357>
WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
WSGIProcessGroup keystone-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
<IfVersion >= 2.4>
ErrorLogFormat \"%{cu}t %M\"
</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
<Directory /usr/bin>
<IfVersion >= 2.4>
Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>
</VirtualHost>
3) 然后将上面的文件链接至启用目录中
ln -s /etc/apache2/sites-available/wsgi-keystone.conf /etc/apache2/sites-enabled
完成安装
最后,重启Apache服务器完成安装。
service apache2 restart
最后的最后,删除安装keystone过程中默认使用的sqlite数据库。由于我们已经用mysql替换它了,所以这个文件就没有意义了。
rm -f /var/lib/keystone/keystone.db
至此,我们已经成功的把Keystone安装在了Controller上。
接下来的内容在:Openstack Keystone安装(二)