一 简介
openstack项目越来越多,在Grizzly版本之前,每个项目都要实现一套处理配置文件的代码。每个项目的源码中都可以找到 openstack/common/cfg.py iniparser.py这两个文件。当然,这些不同项目之间的cfg.py等文件很大可能是copy-and-paste分分钟来搞定。这种情况肯定无法被大神忍受,最终,社区决定改变这一切,提出了Oslo项目。Oslo项目的宗旨是提供一系列OpenStack Projects共享的基础库。我们接触的最多的为oslo.config这个库,要来处理程序命令行参数和配置文件。
oslo.config就是其中一个被广泛使用的库,该项工作的主要目的就是解析OpenStack中命令行(CLI)或配置文件(.conf)中的配置信息
二 olso.config用法
2.1 使用步骤
- 正确配置服务配置文件
- 在要使用的配置文件模块中声明这个模块将会用到哪个配置项,包括配置项名称、默认值、数据类型、说明等
- 创建该对象的类充当配置管理器,这个对象会成为配置文件中配置项的容器
- 注册要用到的配置项,这个过程会解析配置文件,从里面提取我们的配置项实际设定的值
- *
2.2 用法
- 假设有一个配置文件叫做xxx.conf,里面内容如下
# 用来简单测试的文件
[DEFAULT]
bind_host = 0.0.0.0
bind_port = 9292
[rabbit]
host = localhost
port = 5672
use_ssl = False
userid = guest
password = guest
- 加载库
from oslo.config import cfg
- 生命将会使用到的配置信息
opts = [
cfg.StrOpt(‘bind_host‘, default=‘0.0.0.0‘),
cfg.IntOpt(‘bind_port‘, default=9292),
]
- 生成容器
CONF = cfg.CONF
- 注册配置信息
CONF.register_opts(opts)
- 从配置文件中读取配置信息
CONF(default_config_files=‘xxx.conf‘)
- 到这里,就可以使用了
bind_port = CONF.bind_port
bind_host = CONF.bind_host