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:组件内的通信可以是基于消息中间件的形式