Ubuntu16手动安装OpenStack——horizon篇

目标

完成了《Ubuntu16手动安装OpenStack——创建实例》,验证了之前的安装没有大的问题。

本文,我们来研究一下horizon的安装配置,主要参考Horizon: Install and configure for UbuntuOpenStack Queens : Configure 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端点,则horizo​​n会检测它并自动启用其支持。queens发布时,Horizo​​n支持以下服务:

  • 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

如下修改:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 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。

3、查看项目和用户。点击左侧导航栏身份认证,项目或者用户。

4、查看cirros0实例。身份认证,项目,siat,查看使用量。

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

访问该地址,即可看到网页控制台。

3、在本地通过密钥访问
(1)在控制节点新建portmap.sh脚本,内容为:

1
2
3
4
5
6
7
8
#!/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。

用户身份验证,方法选择Public Key,浏览,导入实例对应的id_rsa私钥。

(4)配置完成,连接即可。

实例访问外网

在实例中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的配置

1
2
nameserver 180.76.76.76
nameserver 223.6.6.6

sudo vim /etc/resolvconf/resolv.conf.d/base,添加:

1
2
nameserver 180.76.76.76
nameserver 223.6.6.6

注意:执行sudo的时候,反应非常慢,请耐心等待,大概半分钟才能打开文件。要解决这个问题,需要修改hosts文件,加入主机名的解析:

1
127.0.0.1  k8s01

3、测试
ping www.baidu.com

0%