本文接上一篇教程《OpenStack All-In-One模式部署(初学OpenStack必备)》
按照上一篇描述的步骤进行安装OpenStack all-in-one模式,就已经完成了OpenStack环境的基础部署。接下来,我们会在这个OpenStack基础平台上配置和launch一个虚拟机。
>>> continuing …
6、 配置网络接口
6.1 现在的网络信息如下:
对比上一篇教程中deploy前的ifconfig可以看到,现在多了一个br-ex网卡,顾名思义,这是一个桥接网卡,实际上是一个OVS bridge,用于OpenStack连接Internet的网络设备。接下来我们将会配置br-ex来联通Internet,然后将原来的ens160(在你的系统上可能是eth0)作为一个接口连入br-ex,这是虚拟化交换机技术(OVS – Open vSwitch)提供的支持.
6.2 备份ifcfg-ens160
cp /etc/sysconfig/network-scripts/ifcfg-ens160 /root/ifcfg-ens160.bak
6.3 创建br-ex的网络接口文件,并修改ifcfg-ens160和ifcfg-br-ex
6.3.1 生成br-ex的网卡配置文件
cp /etc/sysconfig/network-scripts/ifcfg-ens160 /etc/sysconfig/network-scripts/ifcfg-br-ex
6.3.2 修改ifcfg-ens160的内容为:
[root@controller-node ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
DEVICE=ens160
ONBOOT=yes
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
6.3.3 修改ifcfg-br-ex的内容为:
原始复制生成的ifcfg-br-ex内容为:
[root@controller-node ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens160
UUID=526d3be0-e210-4112-bca8-793b76448c9b
DEVICE=ens160
ONBOOT=yes
HWADDR=00:50:56:A6:92:A4
IPADDR=10.62.230.129
GATEWAY=10.62.230.1
NETMASK=255.255.255.0
DNS1=10.32.126.28
现在修改为:
[root@controller-node ~]# cat /etc/sysconfig/network-scripts/ifcfg-br-ex
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
NAME=br-ex
DEVICE=br-ex
ONBOOT=yes
PREFIX=24
PEERDNS=no
NM_CONTROLLED=no
IPADDR=10.62.230.129
GATEWAY=10.62.230.1
DNS1=10.32.126.28
6.3.4 将ens160接入br-ex,并重启操作系统Network服务
[root@controller-node ~]# ovs-vsctl add-port br-ex ens160
[root@controller-node ~]# systemctl restart network
此时再ifconfig会看到:
Br-ex获取了外网IP,使用命令:ovs-vsctl show可以看到ens160现在是作为一个port attached到了br-ex
6.3.5 验证几个命令
首先引入环境变量设置:
[root@controller-node ~]# source /root/keystonerc_admin
执行命令:
三、使用OpenStack来launch一个实例
创建project
使用admin账户登录Dashboard,在Identity -> Projects -> Create Project
填写Name, Description,我们现在是测试的目的,所以保持Quotas的默认值,最后点击Create Project。
注意记住这里填写的Domain ID和Domain Name都是Default。创建用户,并将此用户分配到创建的steven preoject中:
Identity -> Users -> Create User
填写User Name,Description, Password, Confirm Password,选择Primary Project为前面创建的steven,Role保持为member,如下图。最后点击Create User。
- log out当前的admin,重新使用steven登录。可以看到steven用户已经有一个叫steven的project,并且左侧只有Project和Identity两个操作选项(区别于admin的有三个)
创建网络和路由
4.1 创建私有网络
Project -> Neworks -> Create Network
突然发现上图粘贴错了,上面填写的pub_net应该更改为priv_net
next:
next:
最后点击Create
4.2 创建公有网络
Project -> Neworks -> Create Network
netx:
next:
创建完以后,可以看到两个网络
4.3 将pub_net标记为External Network。
这个操作只有admin有权限操作,因此重新使用admin登录。
Admin -> Network -> Networks
点击pub_net这行的Edit Network,勾选External Network,然后Save Changes
退出admin,重新登录steven
4.4 创建路由(注:上一步不要漏掉退出admin,使用steven登录,到这一步时当前登录用户要确保是steven)
Project -> Network -> Routers -> Create Router
点击Create Router,界面显示如下图:
点击router0,进入router0的页面,选择Interfaces,如下图:
点击Add Interface:
点击Submit
F5刷新页面,等待刚添加的Interface的Status为Active,如下图
此时,可以到Project -> Network -> Network Topology查看当前的网络拓扑图。(注:不建议安装demo的原因就是出于这里,如果安装了demo,这里的拓扑图就跟下图有出入,因为会混入demo的网络拓扑图,这对于刚开始接触OpenStack的同学来说容易迷惑)
上传image
5.1 下载image,为上传做准备。
Image用于创建instance。类似于操作系统的iso一样。我们这里使用cirros,因为它非常小,很适用于做测试。
下载地址:http://download.cirros-cloud.net/0.3.4/ cirros-0.3.4-x86_64-disk.img
使用普通浏览器下载到你的工作机上。
5.2 上传image
Project -> Compute -> Images -> Create Image
填写Image Name, 点击Browse选择上一步下载的image文件,format选择QCOW2 – QEMU Emulator,其他选项包括Metadata都保持默认。最后点击Create Image。创建完以后如下显示:
- 创建安全组
Project -> Network -> Security Groups -> Create Security Group
点击Create Security Group,然后在steven_sec_group行点击Manage Rules。新增四个规则:
Egress IPv4 ICMP – 0.0.0.0/0 (CIDR)
Ingress IPv4 ICMP – 0.0.0.0/0 (CIDR)
Ingress IPv4 TCP 1 – 65535 0.0.0.0/0 (CIDR)
Egress IPv4 TCP 1 – 65535 0.0.0.0/0 (CIDR)
- 为Project分配浮动IP(Floating IPs)
Project -> Network -> Floating IPs -> Allocate IP to Project
点击Allocate IP,重复这个操作一次,再分配一个IP,如下图:
(这里的Pool列都是短横线,按理说应该显示配置的pub_net才对,记住这个问题,暂时跳过) - 创建实例
Project -> Compute -> Instances -> Launch Instance
next:
next:
next:
Network Ports keep default
Keep the rests as they are. Then click Launch Instance.
然后click Actions下Create Snapshot后面的下拉菜单,选择Associate Floating IP:
After association:
再回到Floating IPs页面,可以看到已经associated的IP正常了:
回到Instances页面,点击cirros_instance这个名字,进入这个instance的页面,选择Console,如下图:
按照黄色高亮行的提示登录这个instance(注:这里浏览器可能会很卡,因为我们搭建在虚拟机,CPU,内存性能的缘故)
登录instance测试网络,使用ssh远程登录这个instance进行网络测试。
我这里的网络没有通……仔细查了下,还未找到原因我是在公司做的这个deployment,有可能跟公司的网络内网限制有关系?希望如果有小伙伴们在公司搭建找到了这个问题的原因的,share to me, thanks)
(instance和外网不能互通这个问题不影响我们下一节的探究,so,这里跳过) 本小节讲述了在OpenStack中配置网络,上传image,最后launch一个instance的详细过程。下一节《OpenStack API 初探(调用API获取OpenStack信息)》,将会调用OpenStack的API来获取一些信息(仅仅只是简单的入门探索)。