OpenStack 初探(二) -- 在OpenStack中launch一个虚拟机实例

    本文接上一篇教程《OpenStack All-In-One模式部署(初学OpenStack必备)
    按照上一篇描述的步骤进行安装OpenStack all-in-one模式,就已经完成了OpenStack环境的基础部署。接下来,我们会在这个OpenStack基础平台上配置和launch一个虚拟机。

>>> continuing …

6、 配置网络接口
    6.1 现在的网络信息如下:
    pre-launch-net

对比上一篇教程中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会看到:
        pre-launch-net-set
        Br-ex获取了外网IP,使用命令:ovs-vsctl show可以看到ens160现在是作为一个port attached到了br-ex
        pre-launch-net-br
        6.3.5 验证几个命令
            首先引入环境变量设置:

    [root@controller-node ~]# source /root/keystonerc_admin

            执行命令:
        pre-launch-test-cmd

三、使用OpenStack来launch一个实例


  1. 创建project
        使用admin账户登录Dashboard,在Identity -> Projects -> Create Project
        create-prj-01
        填写Name, Description,我们现在是测试的目的,所以保持Quotas的默认值,最后点击Create Project。
        注意记住这里填写的Domain ID和Domain Name都是Default。

  2. 创建用户,并将此用户分配到创建的steven preoject中:
        Identity -> Users -> Create User
        填写User Name,Description, Password, Confirm Password,选择Primary Project为前面创建的steven,Role保持为member,如下图。最后点击Create User。
        create-prj-02

  3. log out当前的admin,重新使用steven登录。可以看到steven用户已经有一个叫steven的project,并且左侧只有Project和Identity两个操作选项(区别于admin的有三个)
    create-prj-03
  4. 创建网络和路由
    4.1 创建私有网络
        Project -> Neworks -> Create Network
        create-net-01

突然发现上图粘贴错了,上面填写的pub_net应该更改为priv_net

    next:
    create-net-02
    next:
    create-net-03
    最后点击Create
4.2 创建公有网络
    Project -> Neworks -> Create Network
    create-net-pub-01
    netx:
    create-net-pub-02
    next:
    create-net-pub-03
    创建完以后,可以看到两个网络
create-net-pub-04
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-01
    点击Create Router,界面显示如下图:
    create-router-02
    点击router0,进入router0的页面,选择Interfaces,如下图:
    create-router-03
    点击Add Interface:
    create-router-04
    点击Submit
    F5刷新页面,等待刚添加的Interface的Status为Active,如下图
    create-router-05
    此时,可以到Project -> Network -> Network Topology查看当前的网络拓扑图。(注:不建议安装demo的原因就是出于这里,如果安装了demo,这里的拓扑图就跟下图有出入,因为会混入demo的网络拓扑图,这对于刚开始接触OpenStack的同学来说容易迷惑)
    net-top

  • 上传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
        create-image-01
        填写Image Name, 点击Browse选择上一步下载的image文件,format选择QCOW2 – QEMU Emulator,其他选项包括Metadata都保持默认。最后点击Create Image。创建完以后如下显示:
        create-image-02

  • 创建安全组
        Project -> Network -> Security Groups -> Create Security Group
        create-sg-01
        点击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)
        create-sg-02
  • 为Project分配浮动IP(Floating IPs)
        Project -> Network -> Floating IPs -> Allocate IP to Project
        allocate-fip-01
        点击Allocate IP,重复这个操作一次,再分配一个IP,如下图:
        allocate-fip-02
        (这里的Pool列都是短横线,按理说应该显示配置的pub_net才对,记住这个问题,暂时跳过)
  • 创建实例
        Project -> Compute -> Instances -> Launch Instance
        launch-instance-01
        next:
        launch-instance-02
        next:
        launch-instance-03
        next:
        launch-instance-04
        Network Ports keep default
        launch-instance-05
        Keep the rests as they are. Then click Launch Instance.
        launch-instance-06
        然后click Actions下Create Snapshot后面的下拉菜单,选择Associate Floating IP:
        launch-instance-07
        After association:
        launch-instance-08
        再回到Floating IPs页面,可以看到已经associated的IP正常了:
        launch-instance-09
        回到Instances页面,点击cirros_instance这个名字,进入这个instance的页面,选择Console,如下图:
        launch-instance-10
        按照黄色高亮行的提示登录这个instance(注:这里浏览器可能会很卡,因为我们搭建在虚拟机,CPU,内存性能的缘故)
    登录instance测试网络,使用ssh远程登录这个instance进行网络测试。
    我这里的网络没有通……仔细查了下,还未找到原因我是在公司做的这个deployment,有可能跟公司的网络内网限制有关系?希望如果有小伙伴们在公司搭建找到了这个问题的原因的,share to me, thanks)
    (instance和外网不能互通这个问题不影响我们下一节的探究,so,这里跳过)
  •     本小节讲述了在OpenStack中配置网络,上传image,最后launch一个instance的详细过程。下一节《OpenStack API 初探(调用API获取OpenStack信息)》,将会调用OpenStack的API来获取一些信息(仅仅只是简单的入门探索)。
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值