首页 > 代码库 > Ubuntu 12.04 LTS配置Icehouse版Keystone

Ubuntu 12.04 LTS配置Icehouse版Keystone

keystone配置文件概况
keystone的配置文件在/etc/keystone目录下,主要的配置文件包括:
-----------------------------------------------------------------------------------------------------
default_catalog.templates   //目录配置文件,标注openstack其他服务的网络位置
ec2rc             
keystone.conf.dpkg-dist   //主配置文件模板
keystone.conf          //keystone主配置文件
keystone-paste.ini.dpkg-dist //PasteDeploy配置文件模板
keystone-paste.ini      //PasteDeploy配置文件
logging.conf.sample      //日志配置文件模板
policy.json          //权限管理文件
ssl/                //用来建立PKI的目录
------------------------------------------------------------------------------------------------------
keystone主要的配置文件介绍
keystone的配置文件是基于Paste的ini格式的通用Python WSGI配置应用,其中主要有,

1. keystone-paste.ini
  是PasteDeploy的配置入口点,在本文件中配置WSGI pipeline和filter等信息

2. keystone.conf
  这是keystone最主要的配置文件,内容包括通用的配置参数和具体针对不同驱动的配置参数
 该文件的大体结构是:
 [DEFAULT] - 通用配置参数
 [sql] - 可选的存储端配置
 [ec2] - Amazon EC2 身份认证驱动配置
 [s3] - Amazon S3 身份认证驱动配置
 [oauth1] - OAuth 1.0a 系统驱动配置
 [identity] - identity 系统驱动配置
 [catalog] - openstack服务目录驱动配置
 [token] - token驱动与token提供者配置
 [cache] - cache层配置
 [policy] - RBAC策略系统驱动配置
 [signing] - 用来为基于PKI的token进行加密签名
 [ssl] - SSL 配置
 [auth] - 身份认证插件配置
 [os_inherit] - 继承的角色指派扩展配置(Inherited Role Assignment # extension)
 [endpoint_filter] - 终端(endpoint)过滤扩展配置
 [paste_deploy] - 用来定位PasteDeploy配置文件
 [federation] - 结盟(federation)驱动配置
--------------------------------------------------------------------------------------------------------

下面介绍正常运行keystone需要的部分配置

 

#锁定keystone端口,keystone使用在IANA注册的35357端口,为了避免冲突,可以将该端口从临时端口范围中排除(可选)

$ sysctl -w ‘net.ipv4.ip_local_reserved_ports=35357‘

 

#或者在/etc/sysctl.conf文件中添加相同的信息(可选)
$ vim /etc/sysctl.conf

#在打开文末添加
net.ipv4.ip_local_reserved_ports = 35357

 

#配置keystone
$ vim /etc/keystone/keystone.conf

 

#取消这些字段前面的注释,激活默认配置

[DEFAULT]
admin_token=YOUR_ADMIN_TOKEN
public_bind_host=0.0.0.0
admin_bind_host=0.0.0.0
compute_port=8774
admin_port=35357
public_port=5000
public_endpoint=http://localhost:5000/
admin_endpoint=http://localhost:35357/
log_config_append=/etc/keystone/logging.conf
policy_file=policy.json

[auth]
methods=external,password,token
password=keystone.auth.plugins.password.Password
token=keystone.auth.plugins.token.Token
external=keystone.auth.plugins.external.DefaultDomain

[catalog]
template_file=default_catalog.templates
driver=keystone.catalog.backends.sql.Catalog

[credential]
driver=keystone.credential.backends.sql.Credential

[database]
#connection = sqlite:////var/lib/keystone/keystone.db
#格式 connection = mysql://USER:PASSWORD@HOST:PORT/DATABASE
connection = mysql://keystone:KEYSTONE_PASS@127.0.0.1:3306/keystone

[identity]
driver=keystone.identity.backends.sql.Identity

[paste_deploy]
config_file=keystone-paste.ini

[signing]
certfile=/etc/keystone/ssl/certs/signing_cert.pem
keyfile=/etc/keystone/ssl/private/signing_key.pem
ca_certs=/etc/keystone/ssl/certs/ca.pem
ca_key=/etc/keystone/ssl/private/cakey.pem

[token]
driver=keystone.token.backends.sql.Token

 

#重启keystone服务
$ service keystone restart

 

#建立keystone数据库中的数据表
$ keystone-manage db_sync

 

#初始化keystone数据
$ cd /usr/share/keystone/
$ ./sample_data.sh

至此为止已经完成keystone的初始化,以后可以利用keystone-all命令来启动keystone服务器和Identity API,用keystone-manage来实现一些线上不能完成的操作,用CLI keystone来与keystone服务器完成各种交互了。