一 簡介
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