2021SC@SDUSC
Openstack 组件 Oslo
Oslo简介
随着OpenStack项目的不断发展与完善,OpenStack社区将所有组件中的具有共性的组件剥离出来,并统一放在oslo组件下。oslo中的组件不仅可以在OpenStack项目中使用,也可以单独作为第三方工具包供其他项目使用。
Oslo库组件
| 组件 | 功能 |
|---|---|
| config | 配置文件 |
| log | 日志文件 |
| service | 带ssl的REST服务器 |
| privsep | 代码特权分离 |
| serilization | 序列化 |
| i18n | 国际化 |
| policy | 权限系统 |
| messaging | 是 OpenStack 中实现 RPC 的库,底层可以支持各种不同消息队列 |
| middleware | HTTP中间件 |
| rootwrap | 使用户获得root权限执行特权命令 |
| pdr | pbr 是 OpenStack 开发的,和 setuptools 配合使用 |
| automaton | 状态机实现框架 |
| cliff | 命令行插件,可拓展 |
| cookiecutter | 初始化git |
oslo config
先文件中导入cfg,为新建配置组做准备
from oslo_config import cfg
建立api_group 以配置
api_group = cfg.OptGroup(‘api’,
title=‘API options’,
help="""
Options under this group are used to define Nova API.
“”")
创建配置项
auth_opts = [
cfg.StrOpt(“auth_strategy”,
default=“keystone”,
choices=(“keystone”, “noauth2”),
deprecated_group=“DEFAULT”,
help="""
This determines the strategy to use for authentication: keystone or noauth2.
‘noauth2’ is designed for testing only, as it does no actual credential
checking. ‘noauth2’ provides administrative credentials only if ‘admin’ is
specified as the username.
“”"),
cfg.BoolOpt(“use_forwarded_for”,
default=False,
deprecated_group=“DEFAULT”,
help="""
When True, the ‘X-Forwarded-For’ header is treated as the canonical remote
address. When False (the default), the ‘remote_address’ header is used.
You should only enable this if you have an HTML sanitizing proxy.
“”"),
]
将auth_opts注册到api_group中
API_OPTS = (auth_opts +
metadata_opts +
file_opts +
osapi_opts +
allow_instance_snapshots_opts +
osapi_hide_opts +
fping_path_opts +
os_network_opts +
enable_inst_pw_opts)def register_opts(conf):
conf.register_group(api_group)
conf.register_opts(API_OPTS, group=api_group)
配置完成