horizon部署
这里简单安装一下,日后会详细更新,搭建得是mitaka版本的
一 环境准备
之前搭建keystone和glance并没有环境准备,是因为我是单一部署的,而在实际的生产环境中, 搭建一个私有云肯定是从头部署到尾的,是一个整体搭建的过程,所以事先要把环境准备好,类似于mysql,每个服务都需要使用mysql;还有ntp(时间服务),openstack是一个大的环境(系统),所有主机协同工作,就跟战士们打仗一样,打之前要同时对准时间,所以要放到这种初始化的环境当中。
这些都是在开始搭建openstack私有云环境之前所需要做的,也就是需要搭建的服务
二 部署horizon
part 1 安装 Memcached
Memcached是一种key-value形式的缓存,可以缓存token,也可以缓存openstack镜像的原数据的信息,称之为NoSql型数据库,目的是为了提高数据库的查询速度,所以Memcached是为了缓解数据库查询的压力
前面搭建glance的时候,在/etc/glance/glance-api.conf里有这样一条memcached配置
这条配置直接指定了memcached的服务器和端口号(由于单点搭建,目前只好写死了本机ip和端口号),glance要申请令牌,要和keystone进行交互,keystone要和mysql进行交互,意思就是先在memcached检查一下有没有,如果有就直接用,这就是缓存的作用
好了,不废话了直接开始装,很简单
我们先参照官网的安装文档来进行安装:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/environment-memcached.html
安装软件包:
yum install memcached python-memcached -y
启动Memcached服务,并且配置它随机启动。
systemctl enable memcached.service
systemctl start memcached.service
这就装完了,没什么难度,so easy吧 ,但是在实际的生产环境当中,你就要考虑实际情况,比如说单点问题,要搭建一个集群之类的
part 2 Dashboard 安装
接下来进行Dashboard的安装
同样也是参考官方给出的安装文档:https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/horizon-install.html
a.安装软件包:
yum install openstack-dashboard -y
b.编辑文件 /etc/openstack-dashboard/local_settings 并完成如下动作:
vim /etc/openstack-dashboard/local_settings
(1)在 controller 节点上配置仪表盘以使用 OpenStack 服务(不能监听监听本地,否则别人访问不到,也就是配置成本机)
OPENSTACK_HOST = "192.168.1.109"
(2)允许所有主机访问仪表板:
ALLOWED_HOSTS = ['*', ]
(3)配置 memcached 会话存储服务
什么叫session保持? 就是访问一遍以后,会把你的登录信息等写到一个数据库里,下次再次登录的时候,不查数据库,先存缓存里查一查,判读一下用户是否登录,本质还是依赖于memcached
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
这个配置文件当中没有,直接加在配置文件的最后一行
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', } }
这个配置文件中的都删掉,把这一条直接放上去
注意:dashboard会去找缓存,一定要写成127.0.0.1,否则会报错,显示session建不成功,
因为memcached是默认安装,用 netstat -tnlp |grep 1121查看,显示memcached监听的IP是127.0.0.1,写成别的访问不到
(4)启用第3版认证API:
horizon要发起一个上传镜像的请求,首先要向keystone获取一个令牌,要有一个URL地址,要在这配置一下,和glance一样
注意:原先的配置文件是这样写的
我们把V2.0改成V3这样:
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
在这里必须写成V3,不能写成V3.0,V2,V2.0也不行
因为keystone在建endpoint的时候就写得V3
(5)启用对多个域的支持
域是更高级别管理项目的,如果有需求,应该建多个域
默认是Flase,前提是需要把它打开,改成True
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
(6)配置API版本:
在这控制好用哪一个版本,因为不是通过命令行方式的来控制版本信息了 搭建玩dashboard以后所有的操作而是用web界面来发行(dashboard),必须指定好用哪个版本去发
和命令行下面这些命令有异曲同工之妙
identity 认证的版本 3
image 镜像的版本 2
volume cinder服务的版本 2
OPENSTACK_API_VERSIONS = { "identity": 3, "image": 2, "volume": 2, }
直接在下面追加
(7)通过仪表盘创建用户时的默认域配置为 default :(不指定域的情况下用default域)
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = "default"
去掉注释即可
通过仪表盘创建的用户默认角色配置为 user :
配置文件当中是这样写的:
原因是因为:角色就两种:管理员和普通用户,在老板本当中,称普通用户为“member”,但是新版本都称普通用户为“user”
我们把“member”改成“user”即可
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "user"
(8)如果您选择网络参数1,禁用支持3层网络服务:
这是有关网络的配置,跟Neutron有关,这里先不介绍,以后会更新此部分
如果使用openstack提供的配置方式,就在下面进行配置,是用来控制Neutron
可以根据配置自己想开什么功能就开什么功能就行了,在这里我不进行配置了
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, }
(9)可以选择性地配置时区:
这里我就不改了,配置文件使用的是UTC
part 3重启web服务器以及会话存储服务
因为dashboard是被httpd代理的
systemctl restart httpd.service memcached.service
关闭防火墙
iptables -F
setenforce 0
三 验证
打开浏览器:输入:http://192.168.1.109/dashboard
我操,牛逼了啊 出来了,但是这还没完,登进去才是真正的牛逼
在这个地方,如有显示出错了或者显示凭证无效,打开日志查看报错信息,因为我搭建第一遍的时候也遇到不少错误,都是一步步看日志解决的,在这里我就不大家走那么多坑了,直接把正确的配置告诉大家,如果部署还有问题,请联系我
通过dashboard来上传镜像
在命令行查看一下
openstack image list
在存储设备上查看一下镜像文件
horizon 和glance之间的通信不走消息中间件,安装装消息中间件在这是没有意义的,在这个地方还用不上消息中间件,
Nova和Cinder的时候会用到消息中间件
1:组件之间的通信靠的是REST API(endpoint的方式 )
2:组件内的通信可以是基于消息中间件的形式