Horizon(OpenStack组件Horizon)详细资料大全

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Horizon(OpenStack组件Horizon)详细资料大全相关的知识,希望对你有一定的参考价值。

参考技术A

Horizon使用的是Django应用程式为用户和管理员提供一个管理OpenStack服务的接口。

基本介绍

    中文名 :控制台 外文名 :Horizon
简介,Horizon View 6.0中的RDSH farm,Horizon的RDSH farm,发布Horizon的RDSH桌面,

简介

1、Horizon通常通过Apache中的mod_uwgis搭建。代码分为可重复使用的python模组(和不同的OpenStack API进行互动)和展示模组,在二次开发中可以使用nginx配合uwsgi等方式进行搭建。 2、资料库服务,因为这主要用来存放其他服务的数据,存放自己的数据很少。 3、Horizon个性化定制,提供与各组件的每一个服务公用API通信的功能。

Horizon View 6.0中的RDSH farm

Horizon View 6.0可以让管理员使用HorizonRDSH farm发布虚拟桌面。那么Horizon在RDSH farm是如是什么?如何实现的?
VMware Horizon 6.0的View 在IT使用HorizonRDSH的方式上带来了一些重大变化。
新功能之一就是Horizon的RDSH farm,员工可以从桌面池中访问它们的Horizon的RDSH桌面。建立一个RDSH farm,然后发布一个桌面。
在Horizon 6.0之前的View版本中,IT可以创建一个终端服务池,聚集多个Horizon的RDSH伺服器,为用户组交付桌面。每个Horizon的RDSH伺服器承载多个用户桌面,所以Horizon的终端服务池始终都是浮动的。
在旧版Horizon的View中,Horizon的RDSH看起来像第二选择,因为它不支持PCoIP,但是在Horizon 6.0之后View版本中,Horizon的RDSH桌面是可以使用PCoIP。

Horizon的RDSH farm


Horizon的RDSH farm iew中的一个组成部分,其实是创建一组相同的HorizonRDSH伺服器,将它们视为一个运行桌面和Horizon应用程式的资源池。
在资源池中的Horizon的RDSH伺服器都有着相同的配置,所以Horizon可以相互交替。让Horizon保持一致的最简单的方法就是从同一个模板结合子作业系统自定义来部署所有的Horizon的RDSH伺服器。
在模板中不要安装Horizon的View Agent。正常情况下,来宾自定义会触发Horizon的Agent重新注册connection伺服器,但是,最重要的是模板应该保持注册connection伺服器时的虚拟机名字。
可以使用自定义规范来设定一个RunOnce值,来开启Horizon的Agent静默安装。例如:
VMware-viewagent-y.y.y-xxxxxx.exe /s /v"/qn
VDM_VC_MANAGED_AGENT=0 VDM_SERVER_NAME=MyView.lab.local"
在VDM_SERVER_NAME后面替换为自己的connection server,一定要确保虚拟机设定为自动登录。然后,使用有许可权的域账户将Horizon的Agent添加到Horizon的View中,或者在Horizon的Agent安装命令行中写入用户名和密码。
一旦Horizon的RDSH伺服器创建完,就可以在Horizon的View中添加场。在标识和设定页面,可以设定一些通用属性套用到一个桌面池上。在场上设定的授权组和一些显示协定可以套用到场中的所有池上。 Horizon还有一些其他属性,比如会话逾时等,Horizon这些主要是套用到应用程式池,应用程式池就是用户从Horizon的View client端启动应用程式而不是一个完整的桌面。
一个用户启动一个应用程式,就会与单个Horizon的RDSH伺服器建立一个会话,由于Horizon的登录脚本、用户配置档案、和组策略对象(GPO)都会在第一个应用程式启动时被处理,所以后续再启动其他应用程式速度会明显加快。Horizon的逾时控制可以自动注销会话。当用户关闭Horizon所有应用程式时,会话将会变为空闲状体。如果当会话是打开状态时用户启动其他Horizon应用程式,只需要打开新的应用程式即可。
另一方面,Horizon在会话注销前用户配置档案不会卸载;在会话关闭前,Horizon主机只使用极少的资源。如果用户注销之前的会话,那么Horizon再启动新的应用程式时,登录脚本,用户配置档案、和GPO将会再次执行。
Horizon空闲会话逾时和Horizon注销下线的会话持续的时间越长,用户在启动Horizon新套用时就会越快。如果时间设定的越短,那么Horizon的RDSH伺服器的负载就会越少,Horizon配置档案就会被快速删除。正确的Horizon平衡取决于环境。在用户学习使用Horizon的RDSH应用程式池的过程中,管理员可能需要做出一些调整。
一旦设定了会话逾时,从Connection Servers已注册的主机列表中选择主机,任意一个主机都可以是唯一的Horizon的RDSH场的成员。

发布Horizon的RDSH桌面


创建Horizon的RDSH桌面池和创建其他桌面池一样,在桌面池类型中选择HorizonRDS桌面池。 因为Horizon的RDSH主机已经都部署完成,而且可以通过Horizon的RDSH场来控制远程显示协定,所以Horizon桌面池的设定相对较少。管理员可以控制flash频宽,也可以使用标签来限制对池中服务。

OpenStack Ocata Horizon 开发—— 快速开始

一、写在前面

这篇文章主要介绍了OpenStack Ocata Horizon 根据官方的快速开始文档进行实际的调试验证,涉及在基于基本组件部署完成的情况下,源码部署Horizon开发环境,在后续的文章中将通过不同的文章来具体来说明开发,不涉及OpenStack Ocata 其他组件部署,由于作者能力或者理解不够如果错误请告知, 如果转载,请保留作者信息。

邮箱地址:jpzhang.ht@gmail.com
个人博客:https://jianpengzhang.github.io/
CSDN博客:http://blog.csdn.net/u011521019

二、Horizon (OpenStack Dashboard)

Horizon是一个基于Django的项目,旨在提供一个完整的OpenStack仪表板,以及一个可扩展框架,用于从可重用组件来构建新的仪表板。 openstack_dashboard模块是Django站点的实现,它使用Horizon APP来提供与各种OpenStack项目基于Web的交互。

项目页面:https://launchpad.net/horizon
蓝图和功能规格:https://blueprints.launchpad.net/horizon
问题跟踪:https://bugs.launchpad.net/horizon
源代码:https://github.com/openstack/horizon
代码审查:
[https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z]
(https://review.openstack.org/#q,status:open+project:openstack/horizon,n,z)
持续集成:
Jenkinshttps://jenkins.openstack.org ;
Zuulhttp://status.openstack.org/zuul

三、使用Horizon

请参阅doc/source/topics/install.rst 有关如何在OpenStack中安装Horizon。 它描述了示例步骤,并提供了更详细的设置和配置的指针。也可以在http://docs.openstack.org/developer/horizon/topics/install.html上找到。

Horizon界面功能使用请参考:https://docs.openstack.org/user-guide/common/conventions.html

四、开发人员入门

doc/source/quickstart.rst 或http://docs.openstack.org/developer/horizon/quickstart.html介绍如何设置Horizon开发环境并开始开发。

五、构建贡献者文档

OpenStack Horizon 源码包目录中有一个目录为:horizon-stable-ocata/doc

.
├── Makefile
└── source
    ├── browser_support.rst
    ├── conf.py
    ├── contributing.rst
    ├── faq.rst
    ├── glossary.rst
    ├── images
    ├── index.rst
    ├── intro.rst
    ├── plugin_registry.rst
    ├── quickstart.rst
    ├── ref
    ├── testing.rst
    ├── topics
    └── tutorials

这里面是由贡献者撰写的关于Horizon使用的文档,与http://docs.openstack.org/developer/horizon/quickstart.html内容是一直的,如果觉得网页浏览查看速度慢或者环境限制不能上网可以通过构建成html在本地进行浏览,源文件使用reStructuredText维护在doc/source目录中,由Sphinx构建.

自动建筑命令:

$ ./run_tests.sh --docs

如果想知道更多run_tests.sh的功能,可以./run_tests.sh --help查阅,通过该方式构建文档,通过virtualenv建立一个隔离的环境。

手动建筑命令:

$ tools / with_venv.sh sphinx-build doc / source 

doc/build/html目录中:

.
├── browser_support.html
├── contributing.html
├── faq.html
├── genindex.html
├── glossary.html
├── _images
├── index.html
├── intro.html
├── _modules
├── objects.inv
├── plugin_registry.html
├── py-modindex.html
├── quickstart.html
├── ref
├── search.html
├── searchindex.js
├── _sources
├── _static
├── testing.html
├── topics
└── tutorials

六、Horizon UI开发环境部署

这里认为你已经部署好了一个openstack ocata基础环境,仅演示手动部署horizon UI开发环境。

(1)、基础准备

通过Virtualenv,创建一个隔离的horizon部署环境,
pip安装virtualenv:

apt-get install python-pip
pip install virtualenv 或者 apt-get install python-virtualenv

创建一个独立的Horizon运行环境:

virtualenv --no-site-packages horizon.venv
输出:
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/work/horizon.venv/bin/python2
Also creating executable in /home/work/horizon.venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.

source进入该环境:

source horizon.venv/bin/activate
(horizon.venv) root@ubuntu:/home/work#

退出当前的venv环境,使用deactivate命令:

(horizon.venv) root@ubuntu:/home/work# deactivate
root@ubuntu:/home/work# 

(2)、安装 Horizon

下载 Horizon 代码:

git clone https://github.com/openstack/horizon.git
cd horizon/

安装 Horizon 用于开发:在horizon目录下执行,

pip install -e .

出错:

_setup/include/cext.h:34:20: fatal error: Python.h: No such file or directory

 #include "Python.h"

执行如下命令解决问题,在重复执行上面的命令:

sudo apt-get install -y libxml2-dev libxslt1-dev zlib1g-dev python3-pip

配置环境:

cp openstack_dashboard/local/local_settings.py.example openstack_dashboard/local/local_settings.py

vi openstack_dashboard/local/local_settings.py

ALLOWED_HOSTS = '*'
# ...
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default' # 如果 Domain 的 ID 不是 default,则为对应的 ID  
# ...
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
# ...
OPENSTACK_HOST = "172.16.17.59" # 控制节点IP地址
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user" #根据你的环境自己配置这个参数,这里我是‘user’
# ...
OPENSTACK_API_VERSIONS = 
  "identity": 3,
  "image": 2,
  "volume": 2,

# ...
# 根据你的网络环境配置这里的参数
OPENSTACK_NEUTRON_NETWORK = 
  #...
  'enable_router': False,
  'enable_quotas': False,
  'enable_distributed_router': False,
  'enable_ha_router': False,
  'enable_lb': False,
  'enable_firewall': False,
  'enable_vpn': False,
  'enable_fip_topology_check': False,

初始化静态文件 注意:一定要先执行此步骤再启动服务!否则再执行因为缓存还是不能正常运行,需要在 collectstatic 时增加 -c 参数

python manage.py collectstatic -l

python manage.py compress --force

启动 Horizon 项目:

python manage.py runserver 0.0.0.0:8001

出错:

AttributeError: DjangoTranslation instance has no attribute 'plural'

执行如下命令解决问题:

cd horizon/openstack_dashboard
django-admin compilemessages

(3)、小结

完成上述配置,一个简单的 OpenStack UI 开发环境就搭建完成了。当然每个人的环境不一致,可能会遇到一些奇怪的问题,需要静下心满满解决这些问题。

以上是关于Horizon(OpenStack组件Horizon)详细资料大全的主要内容,如果未能解决你的问题,请参考以下文章

OpenStack Ocata Horizon 开发—— 快速开始

OpenStack Ocata Horizon 开发—— 快速开始

OpenStack Horizon 参数设置说明

自定义OpenStack Horizon(Mitaka)

Openstack私有云运维笔记

OpenStack相关组件知识