Horizon介绍
Horizon是一个web接口,使得云平台管理员以及用户可以管理不同的OpenStack资源以及服务。
- 提供一个Web界面操作OpenStack系统
- 使用Django框架基于OpenStack API开发
- 支持将session存储在DB、Memcached
- 支持集群
虚拟机创建流程
- 第一步,图形界面输入用户名密码到keystone进行认证,认证通过之后会分配一个token,然后使用该token即可访问其他服务;
- 第二步,将创建虚拟机的REST API请求发送给nova-api(携带token);
- 第三部,nova-api拿着此token到keystone查询是否合法;
- 第四步,nova-api和数据库进行交互,将要创建的虚拟机信息写入到数据库;
- 第五步,nova-api发送请求至rabbitMQ消息队列;
- 第六步,nova scheduler监听消息队列,获取请求信息,根据算法指定的具体的计算节点,将虚拟机生成信息放入消息队列;
- 第七步,nova scheduler和数据库进行交互,将虚拟机生成的信息写入到数据库;
- 第八步,被指定的nova computer监听消息队列,获取nova scheduler消息,进行虚拟机创建;
- 第九步和第十步,新版的openstack,nova computer到数据库查询需要通过nova conductor,nova computer与nova conductor通过消息队列进行交互;
- 第十一步,nova conductor更新数据库信息,然后nova computer从数据库获取到虚拟机的创建信息后进行下一步创建虚拟机的操作;
- 第十二步,联系glance获取镜像;
- 第十三步,glance联系keystone进行认证;
- 第十四步,联系neutron获取网络;
- 第十五步,neutron联系keystone进行认证;
- 第十六步,nova computer联系cinder获取磁盘;
- 第十七步,cinder联系keystone进行认证;
- 最终,nova computer调用KVM创建虚拟机。
部署
- 安装软件包
yum install openstack-dashboard -y
配置
编辑文件 /etc/openstack-dashboard/local_settings 并完成如下动作
- 在控制节点上配置仪表盘以使用 OpenStack 服务
OPENSTACK_HOST = "192.168.137.11"
- 启用第3版认证API
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
- 配置角色
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
- 允许所有主机访问仪表板
ALLOWED_HOSTS = ['*', ]
- 配置API版本
OPENSTACK_API_VERSIONS = { # "data-processing": 1.1, "identity": 3, "volume": 2, "compute": 2, }
- 启用对域的支持
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
- 创建用户时的默认域配置为 default
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'default'
- 使用单一扁平网络,禁用支持3层网络服务
OPENSTACK_NEUTRON_NETWORK = { 'enable_router': False, 'enable_quotas': False, 'enable_ipv6': 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"
- Apache服务重启
systemctl restart httpd
- 页面访问
访问地址:http://192.168.137.11/dashboard
默认域:default 用户名:demo 密码:demo