Horizon作为OpenStack的Web界面,它提供了对OpenStack各个模块的可视化操作。Horizon允许用户通过浏览器来访问OpenStack,而无需使用命令行工具以及其他客户端。
Horizon是一个基于Django框架的Web应用程序,它是OpenStack的一个关键部分。使用Horizon,用户可以自由地管理云平台、云硬件设施以及虚拟化资源。
Horizon主要由三个dashboard组成:用户dashboard、系统dashboard和设置dashboard。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
Horizon作为OpenStack的Web界面,提供了丰富的可视化功能,让用户可以更加轻松地操作OpenStack平台。其中,主要包含如下功能:
Horizon为两种用户提供了两种不同的功能界面:
总之,Horizon提供了全面的OpenStack管理功能,并且具有良好的可维护性和扩展性。
[root@controller ~]# yum install -y openstack-dashboard
编辑/etc/openstack-dashboard/local_settings
文件并完成以下操作。配置仪表板以使用 controller
节点上的 OpenStack 服务。
[root@controller ~]# vim /etc/openstack-dashboard/local_settings
OPENSTACK_HOST = "controller"
允许您的主机访问仪表板
ALLOWED_HOSTS = ['*']
配置memcached
会话存储服务
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': 'controller:11211',
},
}
启用身份 API 版本 3
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
启用对域的支持
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
配置API版本
OPENSTACK_API_VERSIONS = {
"identity": 3,
"image": 2,
"volume": 3,
}
配置Default
为您通过仪表板创建的用户的默认域。
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
配置user
为您通过仪表板创建的用户的默认角色。
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
禁用对第 3 层网络服务的支持。
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,
}
配置时区
TIME_ZONE = "Asia/Shanghai"
应用程序的根目录是在 /dashboard
目录下。
WEBROOT = "/dashboard"
更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
[root@controller ~]# vim /etc/httpd/conf.d/openstack-dashboard.conf
# 添加
WSGIApplicationGroup %{GLOBAL}
# WSGIApplicationGroup %{GLOBAL} 是一个 Apache 配置指令
# 用于设置 WSGI 应用程序的进程组
# 这个指令告诉 Apache 使用全局进程组来运行 WSGI 应用程序
重启httpd和缓存服务
[root@controller ~]# systemctl restart httpd.service memcached.service
登陆方法:http://Horizone_server_ip/dashboard
一组具有共同属性的节点集合,如以CPU作为区分类型的一个属性,以磁盘(SSD\SAS\SATA)作为区分类型的一个属性,以OS(Windows\Linux)为作区分类型的一个属性;
nova为了增加横向扩展以及分布式、大规模(地理位置级别)部署的能力,同时又不增加数据库和消息中间件的复杂度,引入了cell的概念,并引入了nova-cell服务。
更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
点击设置->更改密码
创建实例前需要准备好三个工作:镜像、网络、实例类型。
看到这个图应该很容易理解了,就是定义一种资源类型,后面创建实例的时候,根据这个配置去创建。
镜像的来源可以有很多种:
下面演示使用云镜像创建实例:
上传已经下载好的云镜像,无论是img还是qcow2的文件,在镜像格式时都选择 QCOW2 - QEMU模拟器,其他可以不需要选择,然后点击创建镜像即可,等待上传。
实例类型就是配置,黄色的感叹号是表示此项目下分配的内核数量不够了,不能创建这个配置了。
网络选择内网,也可以选择外网,但是一般不会这样选,因为外网IP相对来说是更为稀缺的资源。
可以选择相关的安全组规则,事先可以先定义安全组及其规则。
密钥登录,会生成一对密钥对,让你下载公钥,云镜像创建的实例部进行配置的话,就只能进行公钥免密登录。
在配置这里可以放脚本,开机后就会执行,就可以进行一些初始化操作,比如配置密码,创建好就能用密码登录,后面的就可以先不选择。点击创建实例,等待创建即可。有时候卷会加载太久,超时导致实例创建失败,要调整一下参数,延长时间vim /etc/nova/nova.conf 。
所有跑了nova服务的节点都要修改,修改完重启nova服务生效。
以上就是openstack在web界面创建实例的大致过程。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
子网名称填subnet172_16_10_0,网络地址172.16.10.0/24,网关不填,默认是172.16.10.1。
新建vxlan11,与新建vxlan10步骤相同,子网为172.16.11.0/24,并创建cirros-vm3划入到vxlan11。
cirros-vm3分配到的ip为172.16.11.5,测试vm1和vm3通信,失败,原因是两实例处在不同的vxaln。
新建路由router10_11 ,并将vxlan10、vxlan11加入到路由。
并将vxlan10、vxlan11加入接口
172.24.4.14是路由router_10_11对外通信的网关,新建每个路由默认自带一个对外网关。
再次测试,cirros-vm1与cirros-vm3两个位于不同vxlan的主机成功通过路由进行通信。
每个项目都可以定义其安全组。以demo用户登陆,查看安全组。
以demo用户登陆,开放SSH服务和ICMP服务。选择管理规则->添加规则:
添加SSH服务
添加ICMP服务
以demo用户登陆,定义项目的密钥对,用于虚拟机远程SSH连接。
创建密钥对
给密钥对选择文件保存,这是用于连接的重要文件。更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
实际上,Horizon并不会为OpenStack添加任何一个新的功能,它只是使用了OpenStack部分API功能,因此,我们可以扩展Horizon的功能,扩展Dashboard。
关于dashboard的界面,自己搭起环境后可以有一个直观的感受。
以在admin这个Dashboard里扩展添加一个monitoring的panel为例,介绍扩展OpenStack Dashboard的流程。
首先介绍Dashboard.py这个文件,它位于每个Dashboard的根目录,其作用是注册Dashboard(django里称为app)以及设置Dashboard的属性,比如Dashboard里有哪些panel。
打开admin目录下的Dashboard.py文件,设置SystemPanels有monitoring的panel:
我们可以在Dashboard.py文件里随意的添加、删除panel属性,这对于调试程序的时候很方便。然后在amdin目录下创建一个monitoring的文件夹,并在monitoring文件夹里创建panel.py文件,定义panel:
这是最简单的panel,只定义了其名字。注意:slug属性的值要与monitoring文件夹名字一样。当定义完成后,要记得将其注册到Dashboard里。
Horizon是基于Django框架,程序是通过url来找到panel的,因此,需要在monitoring目录下建立urls.py文件,定义url:
table用于展示数据,Horizon提供了DataTable基类,我们可以通过继承DataTable来实现自定义的table:
在MonitoringTable里定义了两列resources和percent。
view是用来集成table或者tab的,Horizon提供了多种vie类,下面使用DataTableView来自定义我们自己的IndexView:在IndexView里定义好table_class和template_name的属性值,同时需要定义好get_data()方法,此方法用于获取数据展示在table里。
至此,扩展Dashboard已完成,需要重启apache才能看到效果:sudo service apache2 restart。效果如下:
更多关于云计算服务 Openstack 系列的学习文章,请参阅:企业云计算平台 Openstack ,本系列持续更新中。
参考文章:https://blog.csdn.net/qq_52089863/ article/details/131453226 https://blog.csdn.net /rookie23rook/article/details/127745572 https://blog.csdn.net/weixin_48878440/article /details/131272355