OpenStack Horizon 参数设置说明
一、写在前面
这篇文章主要介绍了OpenStack(Mitaka) Horizon官方介绍的部署配置、参数设置说明,从而进行简单的翻译学习,这里主要基于目前最新的Mitakaz版本来说明,帮助自己理解Mitaka Horizon中新增的一些参数功能,提高自己在horizon组件开发方面的理解。因为时间仓促以及个人理解有限,固有错误的地方请指出,后续将会不定期更新完善,谢谢!
如果转载,请保留作者信息。
邮箱地址:@
二、介绍
Horizon 是OpenStack的Dashboard,其中提供了一个 web 基础的用户界面 OpenStack 基本服务包括Nova, Swift, Keystone等等。
三、安装Horizon
系统要求
- Python2.7
- Django1.7 或者 1.8
- 最低需要一套完整运行OpenStack服务的平台
nova:OpenStack 计算服务
keystone:OpenStack 身份认证
glance:OpenStack 镜像服务
neutron:OpenStack 网络服务(或者使用nova-network)
安装
1、安装dashboard
安装包部署(手动部署参考):
# apt-get install openstack-dashboard apache2 libapache2-mod-wsgi memcached python-memcache
2、配置仪表板
编辑/etc/openstack-dashboard/local/local_settings.py本地配置文件进行参数设置:
a. 配置Dashboard在OpenStack控制器节点访问地址(身份认证服务主机)
OPENSTACK_HOST = "controller"
b.允许所有主机访问仪表盘
ALLOWED_HOSTS = ['*']
c.配置缓存服务
CACHES = {
'default': {
'BACKEND': '',
'LOCATION': '127.0.0.1:11211',
}
}
d.配置时区(可选)
TIME_ZONE = "TIME_ZONE"
3、重启web服务于缓存服务
# service apache2 restart
# service memcached restart
四、Horizon 设置和配置
Horizon的设置分为三类:
- Horizon配置选项(包含在Horizon openstack_dashboard/ HORIZON_CONFIG字典),这不是OpenStack的特定的,只属于核心配置文件。
- OpenStack有关其涉及到其他项目/服务的设置,通常在设置文件前缀为openstack_选项中设置的。
- Django设置(包括django-compressor压缩等常用插件)可以在各自的文档中阅读。
以下选项可以配置/自定义你的Horizon。所有这些都包含在horizon_config词典中:
HORIZON_CONFIG = {
'user_home': 'openstack_dashboard.views.get_user_home',
'ajax_queue_limit': 10,
'auto_fade_alerts': {
'delay': 3000,
'fade_duration': 1500,
'types': ['alert-success', 'alert-info']
},
'bug_url': "",#None,
'help_url': "",
'exceptions': {'recoverable': ,
'not_found': exceptions.NOT_FOUND,
'unauthorized': },
'modal_backdrop': 'true',
'angular_modules': [],
'js_files': [],
'js_spec_files': [],
'external_templates': [],
'plugins': []
}
1、dashboards(New in version 2012.1(Essex))
默认值:None
Horizon Dashboard 通过以下的方式自动发现的:
- 通过添加一个配置文件openstack_dashboard/local/enabled (更多信息见可插拔的设置)。这是在OpenStack Dashboard的默认方式。
- 通过Django的installed_apps和导入Horizon的文件””,注册自己的Horiozn Dashboard面板。
默认情况下,通过在openstack_dashboard/local/enabled 进行配置,显示按照配置文件字母顺序排列的第一个定义的Dashboard,剩下的通过installed_apps按字母顺序排列显示。
列出的Dashboard必须被包括在该INSTALLED_APPS列表中和Python路径上的一个Python模块中。
2、default_dashboard(New in version 2012.1(Essex))
默认值:None
这应该是第一次运行Horiozn或者用户登录或被重定向到的位置。
3、user_home (New in version 2012.1(Essex))
默认值:settings.login_redirect_url
URL路径(如默认),登陆用户应该被重定向到基于用户属性的功能点。
4、ajax_queue_limit (New in version 2012.1(Essex))
默认值:10
AJAX同时连接Horizon最大数量,对于监控大量虚拟机实例、云硬盘等更新/改变状态等有非常大的作用。
5、ajax_poll_interval (New in version 2012.1(Essex))
默认值:2500
ajax轮询间隔,资源状态查询更新,单位毫秒。
6、auto_fade_alerts (New in version 2013.2(Havana))
默认值: {‘delay’: [3000], ‘fade_duration’: [1500], ‘types’: []}
如果提供,将依照警报类型指定。有效的警报类型包括: [‘alert-default’, ‘alert-success’, ‘alert-info’, ‘alert-warning’, ‘alert-danger’] 也可以定义警报消失前的延迟和淡出持续时间。
7、bug_url (New in version 9.0.0(Mitaka))
默认值:None
如果设置,将提供一个“报告问题”链接,显示右上角用户设置上。
8、help_url (New in version 2012.2(Folsom))
默认值:None
如果设置,将提供一个“帮助”链接,显示右上角用户设置上。
9、exceptions (New in version 2012.1(Essex))
默认值:Default: {‘unauthorized’: [], ‘not_found’: [], ‘recoverable’: []}
字典中包含异常类,Horizon集中异常处理。基于这些异常类别,Horizon将处理异常,并向用户显示一个消息。
10、modal_backdrop (New in version 2014.2(Kilo))
默认值:”static”,
用来设置Horizon弹出框后面的背景元素,默认是“static”,可以设置:
”true“:弹出框显示之后,背影有灰色。
”false“:弹出框显示之后,没有背景颜色,能够看到黑后的内容。
注意:修改完成后需要运行:
python compress
11、disable_password_reveal (New in version 2015.1(Kilo))
默认值: False
设置此为True的将禁用“显示”按钮在需要输入密码字段的输入框,包括登录表单。
12、password_validator (New in version 2012.1(Essex))
默认值: {‘regex’: ‘.*’, ‘help_text’: _(“Password is not accepted”)}
一个字典,包含一个正则表达式,该表达式将用于密码验证以及帮助文本,如果该密码不通过正则表达式的验证,将显示该帮助文本。帮助文本应该描述密码的要求。
这个设置允许您自定义设置密码的规则,如果您的团队需要一些额外的密码规则。
13、password_autocomplete(New in version 2013.1(Grizzly))
默认值: “off”
默认关闭,可以设置成”on”
设置浏览器记录用户登录的用户名密码等信息,下次登录能够在登录表单中默认已经完成。
14、simple_ip_management (New in version 2013.1(Grizzly))
默认值:True
启用或禁用简化的浮动地址管理。
“Simple”的浮动IP地址管理方式,用户不必选择IP池以及IP地址,只需要点击绑定IP地址,系统自动绑定一个可用的浮动IP地址。
“advanced”浮动IP管理允许用户选择IP池,并在关联的实例中选择一个特定的IP地址。
注意:目前“Simple”的浮动IP地址管理方式与Neutron的网络模式不兼容。原因:1、Neutron不支持默认的IP池;2、Neutron浮动IP可以与每个VIF相关,我们需要检查是否只有一个VIF的实例,使简单的协会的支持。
15、angular_modules
默认值:[]
AngularJS模块列表,当bootstraps加载时,这些模块添加为horiozn的依赖。
16、js_files
默认值:[]
javascript源文件列表将包含在压缩文件中加载到每一页。
17、js_spec_files (New in version 2015.1(Kilo))
默认值:[]
JavaScript的规范文件的列表,包括与Jasmine整合。Jasmine是用于测试JavaScript代码的行为驱动开发框架。
五、OpenStack设置
设置OpenStack项目中的dashboards, panels, API等等,进行参数设置。
大多数设置参数被定义在:
openstack_dashboard/local/local_settings.py, 应该从复制openstack_dashboard/local/local_settings.
在mitaka中还有一种方法是将文件摘录到”openstack_dashboard/local/local_settings.d/”这些片段必是.py以及必须包含有效的Python代码。local_settings.py加载这些片段,以便您能够覆盖从local_settings.py中设置,而无需更改local_settings.py文件。片段通过文件名字母顺序进行排列。
在”openstack_dashboard/local/local_settings.d/”中一个好的片段命名方式例如: ZZ_another_setting.py, 其中ZZ是一个数字,文件必须以一个下划线()开头,因为Python无法加载文件从一个数字开头。
1、AUTHENTICATION_URLS(New in version 2015.1(Kilo))
默认值: [‘openstack_auth.urls’]
身份验证URL地址,默认添加django-openstack-auth模块,也可以添加其他额外的身份验证机制。
2、API_RESULT_LIMIT (New in version 2012.1(Essex))
默认值:1000
在没有分页的下,API调用返回的最大对象列表。
3、API_RESULT_PAGE_SIZE(New in version 2012.2(Folsom))
默认值:20
类似api_result_limit。此设置控制每页对象显示的数量,如果这个API支持分页。
4、AVAILABLE_REGIONS(New in version 2012.1(Essex))
默认值:None
格式:AVAILABLE_REGIONS = [(‘:5000/v2.0‘, ‘cluster1’),
(‘:5000/v2.0‘, ‘cluster2’),
]
定义多区域。如果定义了多区域,登录表单将有一个下拉选择用来选择相应区域,以及在登录之后项目切换增加一个区域选择功能。
5、CONSOLE_TYPE (New in version 2013.2(Havana))
默认值:”AUTO”
此设置指定浏览器控制台用于访问虚拟机的类型,有效值为”AUTO”(default),
“VNC”, “SPICE”, “RDP”, “SERIAL”,和 None。
“SERIAL”: is available since 2015.1(Kilo).
“None”: 禁用浏览器控制台,is available in version 2014.2(Juno)
6、SWIFT_FILE_TRANSFER_CHUNK_SIZE(New in version 2015.1(Kilo))
默认值:512 * 1024
此设置指定的swift块大小(以字节为单位)从快速下载对象。不要使它非常大(大于几十兆,具体数量取决于你的连接速度),否则你可能会遇到套接字超时。默认值是524288字节(或512字节)。
7、INSTANCE_LOG_LENGTH(New in version 2015.1(Kilo))
默认值:35
此设置使您可以配置实例的日志显示的默认数。有效值必须是正整数。
8、CREATE_INSTANCE_FLAVOR_SORT (New in version 2013.2(Havana))
默认值:{‘key’:’ram’}
当启动一个新的实例时,默认的flavor是按内存使用顺序排序的。您可以自定义排序顺序:id, name, ram, disk and vcpus。此外,您可以插入任何自定义回调函数。您还可以提供反向排序的标志。更多信息可以参考:local_settings.中的描述
这个例子flavor以VCPU降序
CREATE_INSTANCE_FLAVOR_SORT = {
'key':'vcpus',
'reverse': True,
}
9、AVAILABLE_THEMES (New in version 9.0.0(Mitaka))
默认值:AVAILABLE_THEMES = [
(‘default’, ‘Default’, ‘themes/default’), (‘material’, ‘Material’, ‘themes/material’),
]
设置horizon使用的主题。
一个列表元祖定义多个主题,格式:(‘{{ theme_name }}’, ‘{{ theme_label }}’, ‘{{ theme_path }}’)。
主题名称是用来定义其主题被收集到的目录的名称,指定的主题呗存储在浏览器cookie中。
theme_label是面向用户的标签显示在主题选择器。主题选择器只是可见如果不止一个主题配置,并显示在topnav的用户菜单。
10、DEFAULT_THEME(New in version 9.0.0(Mitaka))
默认值:”default”
此设置告诉Horizon如果用户尚未通过主题选择器选择的主题,因此,设置cookie值要使用的主题。这个值表示从可用的主题使用的THEME_NAME。要使用此设置,主题也必须在可用的主题里面进行配置。
11、THEME_COLLECTION_DIR (New in version 9.0.0(Mitaka))
默认值:”themes”
这个设置告诉Horizon,静态目录收集可用的主题,因此,该网址指向主题集根目录,例如,默认的主题 /{{ STATIC_URL }}/themes/default访问。
12、THEME_COOKIE_NAME (New in version 9.0.0(Mitaka))
默认值:”theme”
这个设置告诉Horizon在其中的cookie键保存当前设置的主题。 cookie过期时间当前设置的为一年。
13、CUSTOM_THEME_PATH(New in version 2015.1(Kilo))
默认值:”themes/default”
这个设置告诉Horizon,使用一个目录作为自定义主题,
该设置已弃用,不必过多关注。
14、DEFAULT_THEME_PATH (New in version 8.0.0(Liberty))
默认值:”themes/default”
该设置已弃用,不必过多关注。
15、DROPDOWN_MAX_ITEMS (New in version 2015.1(Kilo))
默认值:30
这个选项设置下拉框中显示的项的最大数目。
16、ENFORCE_PASSWORD_CHECK (New in version 2015.1(Kilo))
默认值:False
此设置将用户列表更改密码表单上显示的“Admin Password”字段,以验证它确实是登录的管理员。
17、IMAGES_LIST_FILTER_TENANTS (New in version 2013.1(Grizzly))
默认值:None
根据项目的所有权,在Image面板中添加可选类别的字典列表来添加Image筛选器。即指定的tenant下的镜像面板中增加一个tab便签例如:“与我共享”
每个字典应包含项目Tenant ID,以及可选的文本属性指定类别名称,显示在过滤器按钮的图标的图标属性。
例如:[{‘text’: ‘Official’, ‘tenant’: ‘27d0058849da47c896d205e2fc25a5e8’, ‘icon’: ‘icon-ok’}]
注意:在Kilo版本由bootstrap icon样式替换为Font Awesome (. ‘fa-check’)。
18、IMAGE_RESERVED_CUSTOM_PROPERTIES(New in version 2014.2(Juno))
默认值:[]
镜像自定义属性键值列表,不应该显示在更新元数据中。
该设置可在一个单独的面板用于管理自定义属性,或者如果某些自定义属性不应该被编辑的情况下使用。
19、LAUNCH_INSTANCE_DEFAULTS(New in version 9.0.0(Mitaka))
默认值:{
“config_drive”: False
}
一个可以用来提供在启动实例模式中的属性默认值而设置的字典。
该config_drive设置指定配置驱动器属性的默认值。
20、LAUNCH_INSTANCE_NG_ENABLED(New in version 8.0.0(Liberty))
默认值:True
这个设置允许AngularJS(新的创建云主机表单)启动工作流实例。在mitaka版本中这个值默认是true
21、LAUNCH_INSTANCE_LEGACY_ENABLED(New in version 8.0.0(Liberty))
默认值:False
此设置可以使Python(老得创建云主机表单)启动实例的工作流程。在mitaka版本中这个值默认是false。
22、MESSAGES_PATH (New in version 9.0.0(Mitaka))
默认值:None
收集消息文件目录的绝对路径。
当用户登录到Horizon,所收集的信息的文件被处理并显示给用户。每个消息文件应包含JSON格式的数据,并且必须有一个以.json文件扩展名。 例如:
{
“level”: “info”,
“message”: “message of the day here”
}
23、OPENSTACK_API_VERSIONS (New in version 2013.2(Havana))
默认值:{
“data-processing”: 1.1,
“identity”: 2.0,
“volume”: 2,
“compute”: 2
}
覆盖了OpenStack的API的版本。使用此设置强制OpenStack的Horizon使用特定的某项服务的API版本。
24、OPENSTACK_ENABLE_PASSWORD_RETRIEVE(New in version 2014.1(Icehouse))
默认值:“False”
设置时,启用实例操作“Retrieve password”,允许从元数据服务中检索密码
设置为true,将增加对例如新的“Retrieve password”的动作,可以让管理员的会话密码retrieval/decryption。
25、OPENSTACK_ENDPOINT_TYPE (New in version 2012.1(Essex))
默认值:”publicURL”
一个字符串,它指定的endpoint类型,用于在keystone服务目录的endpoint使用。所有服务外部访问的是“publicurl”。默认值内部访问值是“internalurl”。
26、OPENSTACK_HOST (New in version 2012.1(Essex))
默认值: “127.0.0.1”
用于身份验证的keystone服务器的主机名,如果你只有一个区域。一个基本的部署通常需要设置一个唯一值。
27、OPENSTACK_HYPERVISOR_FEATURES (New in version 2012.2(Folsom))
默认值:{
‘can_set_mount_point’: False,
‘can_set_password’: False,
‘requires_keypair’: False,
}
字典包含的设置可以用来确定nova hypervisor的功能。
Xen虚拟化必须设置挂载点为连接到实例的卷(其他hypervisor目前没有)的能力。设置can_set_mount_point为True将增加从UI设置挂载点的选项。置can_set_password为True将使发起或重建一个实例时设置管理员密码的选项。将requires_keypair设置为True时需要用户选择一个密钥对启动一个实例。
28、OPENSTACK_IMAGE_BACKEND (New in version 2013.2(Havana))
默认值:{
‘image_formats’: [
(”, _(‘Select format’)),
(‘aki’, _(‘AKI - Amazon Kernel Image’)),
(‘ami’, _(‘AMI - Amazon Machine Image’)),
(‘ari’, _(‘ARI - Amazon Ramdisk Image’)),
(‘docker’, _(‘Docker’)),
(‘iso’, _(‘ISO - Optical Disk Image’)),
(‘qcow2’, _(‘QCOW2 - QEMU Emulator’)),
(‘raw’, _(‘Raw’)),
(‘vdi’, _(‘VDI’)),
(‘vhd’, _(‘VHD’)),
(‘vmdk’, _(‘VMDK’))
]
}
用于自定义相关的glance服务,如支持的image格式的列表。
29、IMAGE_CUSTOM_PROPERTY_TITLES(New in version 2014.1(Icehouse))
默认值:{
“architecture”: _(“Architecture”),
“kernel_id”: _(“Kernel ID”),
“ramdisk_id”: _(“Ramdisk ID”),
“image_state”: _(“Euca2ools state”),
“project_id”: _(“Project ID”),
“image_type”: _(“Image Type”)
}
用于自定义镜像页面上出现的镜像自定义属性的标题。
30、ORIZON_IMAGES_ALLOW_UPLOAD (New in version 2013.1(Grizzly))
默认值:True
如果设置为false,此设置禁用镜像本地上传。
31、OPENSTACK_KEYSTONE_BACKEND (New in version 2012.1(Essex))
默认值:{‘name’: ‘native’, ‘can_edit_user’: True, ‘can_edit_project’: True}
包含可用于识别身份验证后端keystone功能。
32、OPENSTACK_KEYSTONE_DEFAULT_DOMAIN(New in version 2013.2(Havana))
默认值:”Default”
覆盖与keystone V3 单个域运行时使用的默认域。所有实体将在默认域创建。
33、OPENSTACK_KEYSTONE_DEFAULT_ROLE (New in version 2011.3(Diablo))
默认值:”member”
当用户加入到一个项目,该项目将被分配给用户的角色的名称。
此值必须对应于keystone现有的角色名称。在一般情况下,该值应该匹配定义的member_role_name。
34、OPENSTACK_KEYSTONE_ADMIN_ROLES(New in version 2015.1(Kilo))
默认值:[“admin”]
OpenStack的keystone管理员角色,那在这个OpenStack的安装管理员权限的角色列表。这种检查非常基本的,基本上只与keystone v2.0和V3使用默认策略文件的工作原理。该设置假定有一个共同的admin类似的角色(跨服务)。
- 将admin角色重命名为cloud-admin
- 允许多个角色具有管理权限,如:[“admin”, “cloud-admin”, “net-op”]
35、OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT (New in version 2013.2(Havana))
默认值:False
OpenStack的KEYSTONE多域支持,如果在多区域平台上需要将该选项设置为True,当启用此功能时,它将要求用户在登录时输入该域名以及用户名。
36、OPENSTACK_KEYSTONE_URL(New in version 2011.3(Diablo))
默认值:”http://%s:5000/v2.0” % OPENSTACK_HOST
用于验证身份的Keystone endpoint地址。除非你是使用HTTPS,Keystone服务器运行在一个非标准的端口,或使用非标准的URL,否则不需要碰这个设置。
37、OPENSTACK_KEYSTONE_FEDERATION_MANAGEMENT(New in version 9.0.0(Mitaka))
默认值:False
设置为True,使面板为用户提供的能力来管理身份提供者(idp)并建立一组规则映射联盟协议身份API属性。这个扩展需要V3.0 + keystone的API。
38、WEBSSO_ENABLED(New in version 2015.1(Kilo))
默认值:False
设置为True,单点登录,需要确保您使用的是Keystone V3和Django OpenStack Auth V1.2.0 或更高版本。
39、WEBSSO_INITIAL_CHOICE(New in version 2015.1(Kilo))
默认值:”credentials”
默认的身份验证机制。当用户登陆登录页面时,这是他们将看到的第一个选择。
40、WEBSSO_CHOICES(New in version 2015.1(Kilo))
默认值:(
(“credentials”, _(“Keystone Credentials”)),
(“oidc”, _(“OpenID Connect”)),
(“saml2”, _(“Security Assertion Markup Language”))
)
这是提供给用户的认证机制的列表。
41、WEBSSO_IDP_MAPPING(New in version 8.0.0(Liberty))
默认值:{}
特定的身份提供者和联合协议组合的字典。从选定的身份验证机制,该值将被视为在字典中的键。如果找到匹配,它将用户重定向到身份提供商和联盟协议的具体websso端点在重点,否则将使用值为protocol_id当到websso协议端点。
例如:
WEBSSO_CHOICES = (
("credentials", _("Keystone Credentials")),
("oidc", _("OpenID Connect")),
("saml2", _("Security Assertion Markup Language")),
("acme_oidc", "ACME - OpenID Connect"),
("acme_saml2", "ACME - SAML2")
)
WEBSSO_IDP_MAPPING = {
"acme_oidc": ("acme", "oidc"),
"acme_saml2": ("acme", "saml2")
}
42、OPENSTACK_CINDER_FEATURES(New in version 2014.2(Juno))
默认值:{‘enable_backup’: False}
提供用来设置的词典,使cinder提供的可选服务。目前仅备份服务。
43、OPENSTACK_HEAT_STACK(New in version 9.0.0(Mitaka))
默认值:{‘enable_user_pass’: True}
OPENSTACK_HEAT_STACK设置可用于禁用密码字段需要而推出的堆栈。
43、OPENSTACK_NEUTRON_NETWORK (New in version 2013.1(Grizzly))
默认值:
{
'enable_router': True,
'enable_distributed_router': False,
'enable_ha_router': False,
'enable_lb': True,
'enable_quotas': False,
'enable_firewall': True,
'enable_vpn': True,
'profile_support': None,
'supported_vnic_types': ["*"],
'supported_provider_types': ["*"],
'segmentation_id_range': {},
'extra_provider_types': {},
'enable_fip_topology_check': True,
}
字典设置可以用来支持可选的Neutron和配置Neutron具体提供的服务功能。以下选项是可用的。
enable_router (2014.2 Juno):
默认值:False
启用(True)或禁用(假)面板以及与路由器的菜单和浮动IP功能。此选项仅在启用时对Neutron影响。如果Neutron部署有三层功能的支持,或者您不希望提供通过仪表盘三层功能,这应该被设置为False。
enable_distributed_router (2014.2 Juno):
默认值:False
启用或禁用Neutron分布式虚拟路由器(DVR)路由器面板功能。对于DVR功能被启用,这个选项需要设置为true以及Neutron部署必须支持DVR。即使你的Neutron插件(如ML2插件)支持DVR功能,DVR功能取决于L3代理配置,因此它应该适当地设置此选项取决于您的部署。
enable_ha_router (2014.2 Juno):
默认值:False
在路由器面板中启用或禁用虚拟路由器中的高可用性模式。对于启用的“高可用路由器模式”,该选项需要设置为True,而Neutron部署必须支持“HA”路由器模式。即使你的Neutron插件(如ML2插件)支持HA路由器模式,也需要取决于L3代理配置,该值的设置取决于你的部署。
enable_lb (2013.1 Grizzly):
默认值:True
已过时,不必多度了解。
enable_quotas :
默认值:False
启用配额Neutron功能的支持。启用此功能,您需要使用Neutron插件配额扩展支持和quota_driver 和 DbQuotaDriver(默认配置)。
enable_firewall:已过时
enable_vpn:已过时
profile_support:
默认值:None
此选项指定类型的网络端口配置文件支持。目前可用的值是None或“cisco”。并不意味着禁用端口配置文件支持。cisco可以用Neutron思科插件使用。
supported_provider_types (2014.2 Juno):
默认值:[“*”]
使用与提供网络扩展。使用此来显式地设置支持网络类型。只有在创建网络时,该列表中的网络类型可供选择。网络类型定义在Horiozn或extra_provider_types中。
例如:[‘local’, ‘flat’, ‘gre’]
supported_vnic_types (2015.1 Kilo):
默认值:[‘*’]
用于与端口绑定扩展。用这个来显式设置,VNIC类型的支持;只有在创建或编辑端口时,才显示这些列的。虚拟网卡类型包括normal, direct 和 macvtap。默认情况下所有VNIC类型可选择。
例如: [‘normal’, ‘direct’]
禁用虚拟网卡的选型、设置一个空的列表,或None。
segmentation_id_range (2014.2 Juno):
默认值:{}
使用与提供网络扩展。这是一个字典,其中每一个键都网络类型,每个值都包含2个数字的列表,第一个数字是有效的最小分割标识。第二个数字是有效的最大分标识。仅涉及到VLAN,GRE,和VXLAN网络类型。默认情况下,该选项不提供,每一个最小值和最大值将是提供网络类型的默认值。
例如:{
‘vlan’: [1024, 2048],
‘gre’: [4094, 65536]
}
extra_provider_types (Newton):
默认值:{}
使用与提供网络扩展。
例如:
{
'awesome': {
'display_name': 'Awesome',
'require_physical_network': False,
'require_segmentation_id': True,
},
}
enable_fip_topology_check:
默认值:True
默认Neutron实施需要一个路由器与网关到FIP关联。所以默认拓扑检查将由Horizon执行列出连接到一个网络,该网络是本身附加到路由器与外部网关仅VM端口。这是从FIP设置,这将失败,错误的端口,以防止。一些Neutron厂商并不需要它。有的甚至可以附加由租户拥有一个FIP到任何端口(例如:OpenContrail)。如果你希望能够到一个FIP一个实例网上没有路由器,如果你的Neutron后端允许它相关联设置为false。
default_ipv4_subnet_pool_label (Liberty):已过时
default_ipv6_subnet_pool_label (Liberty):已过时
44、OPENSTACK_SSL_CACERT ( 2013.2 Havana):
默认值:None
如果未设置或设置None,系统上的默认CA证书用于SSL验证。
45、OPENSTACK_SSL_NO_VERIFY (2012.2 Folsom):
默认值:False
在OpenStack的客户端禁用SSL证书检查(用于自签名的证书有用)。
46、OPENSTACK_TOKEN_HASH_ALGORITHM (2014.2 Juno):
默认值:”md5”
用于身份验证的哈希算法。这必须匹配散列算法,身份(Keystone)服务器和auth_token中间件的使用。允许的值是通过Python的hashlib库支持的算法。
47、POLICY_FILES (2013.2 Havana):
默认值:{‘identity’: ‘keystone_policy.json’, ‘compute’: ‘nova_policy.json’}
这应该是对policy_files_path内容服务类型的映射。当文件添加到policy_files_path,他们应该被包括在这里。
48、POLICY_FILES_PATH (2013.2 Havana):
默认值:(ROOT_PATH, “conf”)
指定基于服务的策略文件位置。这些都是用来定义策略规则的行为进行验证的。
49、SESSION_TIMEOUT (2013.2 Havana):
默认值:”3600”
这个SESSION_TIMEOUT方法取代令牌超时和更短的Horizon会话超时时间(以秒为单位)。如果你的令牌到期在60分钟,设置值为1800秒,用户将在30分钟后退出。
50、SAHARA_AUTO_IP_ALLOCATION_ENABLED:
默认值:False
这个设置通知数据处理(Sahara)系统是否自动启用IP分配。你想要设置为True运行Nona网络auto_assign_floating_ip = True。
51、TROVE_ADD_USER_PERMS and TROVE_ADD_DATABASE_PERMS (2013.2 Havana):
默认值:[]
一些用户和数据库的扩展支持。默认情况下,在数据库实例上创建用户和数据库的支持是打开的。禁用这些扩展设置。
52、WEBROOT (2015.1 Kilo):
默认值: “/”
指定在网络服务器中配置仪表板的访问位置。例如,如果你通过HTTPS访问dashboard:
https://<your server>/dashboard,您将设置为“/dashboard/”。
53、STATIC_ROOT (8.0.0 Liberty):
默认值:
"<path_to_horizon>/static",静态文件的目录绝对路径,运行时收集的。
详情参考
54、STATIC_URL (New in version 8.0.0(Liberty))
默认值:/static/
在STATIC_ROOT URL引用文件地址。可以更改此值。改变时,在您的网络服务器配置应该被更新以匹配。注意:必须以’/’结尾。
55、DISALLOW_IFRAME_EMBED(New in version 8.0.0(Liberty))
默认值:True
禁止iframe嵌入,这个设置可以用来抵御和防止horizon被嵌入一个iframe。传统的浏览器仍然容易受到跨框架脚本(XFS)漏洞,所以这个选项允许,加强安全性。如果设置为true,”frame-buster”脚本插入模板头,防止网页被陷害,因此抵御点击劫持。
更多信息请参见:/anticlickjack
56、OPENSTACK_NOVA_EXTENSIONS_BLACKLIST(New in version 8.0.0(Liberty))
默认值:[]
忽略所有列出的nova扩展和行为就好像他们是不支持的。出于性能考虑,可用于选择性地禁用。
六、Django设置
1、ALLOWED_HOSTS(New in version 2013.2(Havana))
默认值:[‘localhost’]
此列表应该包含运行Horizon Dashboard的主机名(或IP地址);
2、DEBUG and TEMPLATE_DEBUG(New in version 2011.2(Cactus))
默认值:True
控制未处理的异常是否应生成一个通用的500响应或用一个漂亮的格式的调试信息页面呈现给用户。当设置时,缓存TEMPLATE_LOADERS将不会被缓存。在生产环境应该设置为false
3、TEMPLATE_LOADERS(New in version 10.0.0(Newton))
模板加载器
4、ADD_TEMPLATE_LOADERS(New in version 10.0.0(Newton))
这里定义模板的装载机将在template_loaders加载结束后,cached_template_loaders不会有缓存的输出。
5、SECRET_KEY(New in version 2012.1(Essex))
设置一个自定义的密钥:你可以将它设置为一个特定的值,或者你可以让horizon上生成一个默认的密钥在本机上,无论Python WSGI(如果使用在Apache + mod_wsgi)。在许多情况下,你会想把它设定,例如当多个dashboard实例分布在不同的机器上(通常在一个负载均衡器)。你必须确保会话获取所有请求路由到相同的dashboard实例或你为它们设置相同的secret_key。
From import secret_key:
SECRET_KEY = secret_key.generate_or_read_from_file(
(LOCAL_PATH, '.secret_key_store'))
local_settings.文件包括一个快速和容易的方法来生成一个单一的安装密钥。
6、SECURE_PROXY_SSL_HEADER, CSRF_COOKIE_SECURE and SESSION_COOKIE_SECURE(New in version 2013.1(Grizzly))
这三种设置应配置如果你部署SSL的horizon。当csrf_cookie_secure或session_cookie_secure设置为true,这些属性有助于保护会话cookie的跨站点脚本
7、ADD_INSTALLED_APPS (New in version 2015.1(Kilo))
设置的installed_apps Django应用程序列表。允许扩展已安装应用程序的列表,不必完全重写安装应用程序的列表。
七、Pluggable 设置
Horiozn使Dashboard,Panels和Panel Group添加而不需要修改默认设置。可设置一个机制,允许设置可以存储在单独的文件中。这些文件在启动时读取,并用于修改默认设置。
Dashboard配置文件的默认位置是openstack_dashboard/enabled,另一个目录openstack_dashboard/local/enabled,两组文件会被加载,但后者将覆盖前者。请注意,由于Python模块名称不能以数字开头,该文件是通常与领先的下划线和一个编号命名,这样就可以轻松地控制它们的顺序。
我们描述的特定用例之前,以下键可用于任何可插入设置文件:
1、ADD_EXCEPTIONS(New in version 2014.1(Icehouse))
异常类字典被添加到Horiozn[ ‘exceptions ]
2、ADD_INSTALLED_APPS(New in version 2014.1(Icehouse))
添加到应用程序列表installed_apps。
3、ADD_ANGULAR_MODULES(New in version 2014.2(Juno))
AngularJS模块列表。
4、ADD_JS_FILES(New in version 2014.2(Juno))
javascript源文件列表将包含在压缩文件加载到每一页。这是AngularJS所需模块中引用ADD_ANGULAR_MODULES因此需要包含在每一页。
5、ADD_JS_SPEC_FILES(New in version 2015.1(Kilo))
JavaScript的规范文件的列表,包括与Jasmine规范整合。Jasmine是用于测试JavaScript代码的行为驱动开发框架。
6、ADD_SCSS_FILES(New in version 8.0.0(Liberty))
scss文件列表包含在压缩文件加载到每一页。我们推荐一个scss文件/仪表盘,使用@import如果你需要包括额外scss文件面板。
7、AUTO_DISCOVER_STATIC_FILES(New in version 8.0.0(Liberty))
如果设置为true,JavaScript文件和静态HTML模板文件将被自动发现在每个应用程序中列出的add_installed_apps静态文件夹。
首先列出扩展.,其次是其他JavaScript源文件的文件:JavaScript源文件将根据命名规则进行排序。
首先列出扩展.,然后用扩展.文件文件:用于测试JavaScript文件也将根据命名规则排序。
8、DISABLED(New in version 2014.1(Icehouse))
如果设置为True,此设置文件不会被添加到设置。
9、UPDATE_HORIZON_CONFIG(New in version 2014.2(Juno))
这将取代HORIZON CONFIG值的字典。
八、Dashboards设置
1、DASHBOARD(New in version 2014.1(Icehouse))
dashboard 添加到HORIZON[‘dashboards’]
2、DEFAULT(New in version 2014.1(Icehouse))
如果设置为真,这个dashboard将被设置为默认的dashboard。
3、Examples
局部禁用一个dashboard,创建一个文件openstack_dashboard/local/enabled/_40_dashboard下列内容:
DASHBOARD = '<dashboard-name>'
DISABLED = True
添 Tuskar-UI Dashboard,你必须安装它,然后创建一个文件openstack_dashboard/local/enabled/_50_tuskar.py:
from tuskar_ui import exceptions
DASHBOARD = 'infrastructure'
ADD_INSTALLED_APPS = [
'tuskar_ui.infrastructure',
]
ADD_EXCEPTIONS = {
'recoverable': ,
'not_found': exceptions.NOT_FOUND,
'unauthorized': ,
}
九、Panels 设置
1、PANEL(New in version 2014.1(Icehouse))
Panel的slug被添加到horizon_config
2、PANEL_DASHBOARD(New in version 2014.1(Icehouse))
Panel相关联的Dashboard。
3、PANEL_GROUP (New in version 2014.1(Icehouse))
该Panel关联Panel Group的slug。如果你想在Panel显示没Panel Group,使用Panel Group的“默认”。
4、DEFAULT_PANEL(New in version 2014.1(Icehouse))
如果设置,它将更新的panel_dashboard默认Panel。
5、ADD_PANEL(New in version 2014.1(Icehouse))
Panel添加Python类
6、REMOVE_PANEL(New in version 2014.1(Icehouse))
如果设置为true,该小组将从PANEL_DASHBOARD/PANEL_GROUP删除。
7、例子
添加一个新的小组,在管理控制台管理Panel Group,创建一个文件openstack_dashboard/local/enabled/_60_admin_add_panel.py有以下内容
PANEL = 'plugin_panel'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
ADD_PANEL = 'test_panels.plugin_panel.'
从管理控制台管理Panel Group删除信息面板,创建一个文件openstack_dashboard/local/enabled/_70_admin_remove_panel.py 下列内容:
PANEL = 'info'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
REMOVE_PANEL = True
更改默认实例管理Dashboard Panel,创建一个文件openstack_dashboard/local/enabled/_80_admin_default_panel.py下列内容:
PANEL = 'instances'
PANEL_DASHBOARD = 'admin'
PANEL_GROUP = 'admin'
DEFAULT_PANEL = 'instances'
十、Panel Groups 设置
1、PANEL_GROUP(New in version 2014.1(Icehouse))
该Panel Group被添加到horizon_config
2、PANEL_GROUP_NAME(New in version 2014.1(Icehouse))
该panel_group显示名称
3、PANEL_GROUP_DASHBOARD(New in version 2014.1(Icehouse))
Dashboard的PANEL_GROUP的slug。
4、例子
在管理Panel上添加新的Panel Group,创建一个文件openstack_dashboard/local/enabled/_90_admin_add_panel_group.py 有以下内容:
PANEL_GROUP = 'plugin_panel_group'
PANEL_GROUP_NAME = 'Plugin Panel Group'
PANEL_GROUP_DASHBOARD = 'admin'