Ubuntu16手动安装OpenStack——horizon篇
目标
完成了《Ubuntu16手动安装OpenStack——创建实例》,验证了之前的安装没有大的问题。
本文,我们来研究一下horizon的安装配置,主要参考Horizon: Install and configure for Ubuntu 和 OpenStack Queens : Configure Horizon。
原文地址:https://www.voidking.com/2018/07/09/deve-ubuntu16-manual-openstack-horizon/
说明
由于电脑配置有限,已经没有多余的资源分配给虚拟机,所以接下来的安装配置转移到实体上。实体机系统为ubuntu-16.04.4-server-amd64,配置为32核64GB内存8TB存储。有四张网卡分别为eno1、eno2、eno3和eno4,其中eno1的IP为172.16.0.105,eno2的ip为172.16.101.105,eno3配置为neutron使用的网卡。
172.16.0.105需要通过跳板机访问,172.16.101.105可以本地直连。
实体机同样安装好了keystone、glance、nova和neutron服务,也测试创建了实例。除了配置更高,其他等同于之前的控制节点。
horizon简介
horizon(dashboard)一般安装在控制器节点上,所需的唯一核心服务是身份认证服务。我们可以将horizon与其他服务结合使用,例如镜像服务,计算和网络。也可以在具有独立服务(如对象存储)的环境中使用horizon。
queens版本的horizon需要以下依赖:
(1)Python 2.7
(2)Django 1.11。Django 1.8到1.10也受支持,不过他们的支持将在Rocky版本中被删除。
(3)可访问的keystone端点。
(4)所有其他服务都是可选的。如果配置了服务的keystone端点,则horizon会检测它并自动启用其支持。queens发布时,Horizon支持以下服务:
- cinder: Block Storage
- glance: Image Management
- neutron: Networking
- nova: Compute
- swift: Object Storage
- Horizon also supports many other OpenStack services via plugins.
安装配置
1、安装horizon
apt-get -y install openstack-dashboard
2、编辑horizon配置文件
vi /etc/openstack-dashboard/local_settings.py
如下修改:
# line 39 uncomment and add own hostname
ALLOWED_HOSTS = ['controller', 'localhost']
# line 65: uncomment like follows
OPENSTACK_API_VERSIONS = {
# "data-processing": 1.1,
"identity": 3,
"image": 2,
"volume": 2,
"compute": 2,
}
# line 76: uncomment and change
OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True
# line 98: uncomment
OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'
# line 163: change to your own Memcache server
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '172.16.0.105:11211',
},
}
# line 190: change to your own Host
OPENSTACK_HOST = "172.16.0.105"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v3" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "_member_"
3、重启apache2和memcached
systemctl restart apache2 memcached
简单使用
1、测试访问
访问地址:http://172.16.101.105/horizon/auth/login/
2、Domain输入default,用户名输入admin,密码输入openstack。登录horizon。
image
3、查看项目和用户。点击左侧导航栏身份认证,项目或者用户。
image
image
4、查看cirros0实例。身份认证,项目,siat,查看使用量。
image
5、退出登录
简单使用2
1、测试访问
访问地址:http://172.16.101.105/horizon/auth/login/
2、Domain输入default,用户名输入voidking,密码输入openstack。登录horizon。
3、同样可以看到cirros0实例,并且进行管理。
访问实例
参考OpenStack添加镜像,添加ubuntu16的官方镜像,创建实例,分配的IP为10.0.0.208。
1、在控制节点通过密钥访问
ssh ubuntu@10.0.0.208 -i id_rsa
2、在本地通过网页访问
点击实例名称,控制台,即可拿到vnc地址,比如 http://controller:6080/vnc_auto.html?token=a92733f2-e6c5-45e8-8521-5ace9b747957&title=k8s01
把controller替换为172.16.101.105,得到 http://172.16.101.105:6080/vnc_auto.html?token=a92733f2-e6c5-45e8-8521-5ace9b747957&title=k8s01
访问该地址,即可看到网页控制台。
image
3、在本地通过密钥访问
(1)在控制节点新建portmap.sh脚本,内容为:
#!/bin/bash
pro='tcp'
NAT_Host='172.16.0.105'
NAT_Port=20822
Dst_Host='10.0.0.208'
Dst_Port=22
iptables -t nat -A PREROUTING -m $pro -p $pro --dport $NAT_Port -j DNAT --to-destination $Dst_Host:$Dst_Port
iptables -t nat -A POSTROUTING -m $pro -p $pro --dport $Dst_Port -d $Dst_Host -j SNAT --to-source $NAT_Host
(2)执行脚本
chmod a+x portmap.sh
sudo ./portmap.sh
(3)新建xshell连接
名称填入10.0.0.208,主机填入172.16.101.105,端口号填入20822。
image
用户身份验证,方法选择Public Key,浏览,导入实例对应的id_rsa私钥。
image
(4)配置完成,连接即可。
[图片上传失败...(image-135b1-1531621202394)]
实例访问外网
在实例中ping百度,是不通的,下面我们进行配置,使实例能够访问外网。参考Linux配置SNAT上网。
控制节点
在控制节点切换到root进行操作。
1、接收数据包
iptables -P INPUT ACCEPT
2、开启路由功能
echo 1 > /proc/sys/net/ipv4/ip_forward
3、伪装数据包
iptables -t nat -A POSTROUTING -j MASQUERADE
实例
1、在实例中测试访问
ping 120.77.36.182
,是可以ping通的。
ping www.baidu.com
,ping不通。
2、在实例中配置resolv.conf
sudo vim /etc/resolv.conf
,添加nameserver的配置
nameserver 180.76.76.76
nameserver 223.6.6.6
sudo vim /etc/resolvconf/resolv.conf.d/base
,添加:
nameserver 180.76.76.76
nameserver 223.6.6.6
注意:执行sudo的时候,反应非常慢,请耐心等待,大概半分钟才能打开文件。要解决这个问题,需要修改hosts文件,加入主机名的解析:
127.0.0.1 k8s01
3、测试
ping www.baidu.com