Ubuntu16手动安装OpenStack——horizon篇

文章目录
  1. 1. 目标
  2. 2. 说明
  3. 3. horizon简介
  4. 4. 安装配置
  5. 5. 简单使用
  6. 6. 简单使用2
  7. 7. 访问实例
  8. 8. 实例访问外网
    1. 8.1. 控制节点
    2. 8.2. 实例

目标

完成了《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