- A+
在上一篇博客中,我们成功的基于两种网络启动虚拟机;这意味着openstack的核心服务都搭建完成,并正常运行着;有关启动虚拟机实例请参考上一篇博客;今天我们来了解下,基于一个web界面图形工具来管理openstack上的虚拟机;
openstack是iaas(Infrastructure as a Service)服务模型,所谓iaas指基础设施及服务;它的意思就是把基础设施用服务的方式通过网络对外提供;比如,我们要10台虚拟机;我们可以在openstack的web界面上点点鼠标就能给我们启动10台虚拟机,至于这些虚拟机在哪里,怎么启动的我们不用关心;我们只需要关心我们期望的10台虚拟机是不是能够正常使用,是不是我们期望的配置,网络是不是通畅;简单点讲iaas就是把基础设施以服务的方式对外提供,对用户来讲,它隐藏了基础设施的构建过程;常用的还有其他服务模型,比如saas,paas,lbaas,fwaas等等,这些都是在讲把什么抽象成服务的形式对外提供;这些服务模型的出现,大大简化了传统从底层开始构建的复杂过程;
在上一篇博客我们主要聊了下在命令行通过命令的方式在openstack环境上启动虚拟机,通常这种方式不太适合对普通用户使用;为了让openstack易用,我们得给openstack提供一个图形界面,以实现方便任何人使用;dashboard是openstack环境中提供web界面的服务,其项目名称叫horizon,主要作用就是提供一个web管理界面,方便用户管理运行在openstack之上的虚拟机;
1、dashboard服务的安装配置
环境说明,dashboard这个服务可以运行在控制节点,也可以运行在其他一个单独的节点上,但是运行在单独的一个节点上,请提前配置好yum仓库,时间同步,以及主机名解析等等;有关基础环境的配置,请参考https://www.cnblogs.com/qiuhom-1874/p/13886693.html;我这里用一台独立的服务安装dashboard服务;
安装dashboard
[root@node04 ~]# yum install openstack-dashboard -y
编辑/etc/openstack-dashboard/local_settings配置文件,配置OPENSTACK_HOST地址
OPENSTACK_HOST = "controller"
提示:这里可以是主机名,可以是ip地址,默认是127.0.0.1;如果配置主机名,请提前对主机名做名称解析;
配置任何主机都允许访问dashboard服务
ALLOWED_HOSTS = ['*', ]
提示:*表示通配所有主机;
配置存储session的服务为memcached,并配置memcached的地址
SESSION_ENGINE = 'django.contrib.sessions.backends.cache' CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': 'controller:11211', } }
提示:配置了memcached作为session存储服务器,下面默认的CACHES配置就要全部注释;
启用Identity API版本3
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
提示:上面红框中的配置表示把%s替换成OPENSTACK_HOST这个变量的值;也就是说OPENSTACK_KEYSTONE_URL = “http://controller:5000/v3”
启用对域的支持
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
配置API版本
OPENSTACK_API_VERSIONS = { # "data-processing": 1.1, "identity": 3, "image": 2, "volume": 2, # "compute": 2, }
配置default域为用户的默认域
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "Default"
配置创建用户的角色默认为user角色
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
配置网络相关参数,如果openstack中的neutron服务配置的的是provider network ,需要禁用对三层网络的支持,如果是self-service network保持默认即可
默认配置是
如果选用的是provider network这种网络模型,配置是
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"
在/etc/httpd/conf.d/openstack-dashboard.conf配置文件导入以下配置
WSGIApplicationGroup %{GLOBAL}
启动httpd服务,并将其设置为开机启动
提示:以上启动httpd没有成功的原因是在node04上没有安装连接memcache的驱动,所以导致启动httpd时连接memcached找不到模块;
安装连接memcached驱动
[root@node04 ~]# yum install python-memcached Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * centos-qemu-ev: mirror.bit.edu.cn * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com Resolving Dependencies --> Running transaction check ---> Package python-memcached.noarch 0:1.58-1.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: python-memcached noarch 1.58-1.el7 centos-openstack-rocky 38 k Transaction Summary ======================================================================================================================== Install 1 Package Total download size: 38 k Installed size: 123 k Is this ok [y/d/N]: y Downloading packages: python-memcached-1.58-1.el7.noarch.rpm | 38 kB 00:00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : python-memcached-1.58-1.el7.noarch 1/1 Verifying : python-memcached-1.58-1.el7.noarch 1/1 Installed: python-memcached.noarch 0:1.58-1.el7 Complete! [root@node04 ~]#
再次启动httpd,看看是否能够起来?
[root@node04 ~]# systemctl start httpd [root@node04 ~]# ss -ntl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::* [root@node04 ~]# systemctl enable httpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. [root@node04 ~]#
用浏览器访问httpd所在服务器ip地址+/dashboard,看看是否能够访问到dashboard?
用default域demo用户帐号和密码,登录dashbroad
查看demo用户启动的虚拟机实例,看看是否能够看到之前我们启动的实例?
管理实例,连接实例控制台
停止实例
创建3个虚拟机实例
选择镜像
选择模板
选择网络
创建实例
提示:可以看到我们想要的3个虚拟机实例创建好了;
验证:在计算节点上,看看是否有4个虚拟机处于运行状态呢?
[root@node03 ~]# virsh list Id Name State ---------------------------------------------------- 1 instance-00000001 running 13 instance-0000000e running 14 instance-0000000c running 15 instance-0000000d running [root@node03 ~]#
提示:可以看到有4个虚拟机处于运行状态;
查看网络top图
ok,到此dashboard服务就搭建好了;后续我们就可以使用这个web图形界面去管理虚拟机了;