利用 DevStack 来部署测试 OVN (Open Virtual Network)

转载请注明出处: http://kyang.cc/


1. 虚拟机环境搭建

目前我都是基于虚拟机来部署测试 Openstack,所以大家先去下载个 vmware workstation pro 12 以及 ubuntu server 镜像。

然后利用 vmware 新建一个 ubuntu server 的虚拟机实例,有一点要注意的是,我们需要给虚拟机分配两张网卡。一张显卡使用 NAT 模式,另一张使用 Host-only 模式。为什么需要新建两张显卡呢?我先给上面两张网卡命个名, NAT 模式的网卡叫 ens33,Host-only 模式的网卡叫 ens34。使用 DevStack 部署 Openstack 的时候,需要单独占用 ens33 这张网卡,并且部署过程中,系统有段时间无法通过 ens33 和外部通讯(也就是断网了)。但是我一般习惯在 Host 上通过 SSH 连接到虚拟机,由于 ens33 会存在掉线的情况,因此我需要一张额外的网卡保证 HOST 和 虚拟机 的网络连接保持通畅,这就是 ens34 网卡的由来。其实如果你放弃使用 SSH 的方式登陆虚拟机进行 Openstack 部署的话,你确实就只需要 ens33 一张网卡就好。

2. DevStack 源码下载

以下所有命令,都是在虚拟机实例上运行的。

首先去 github 上,下载一份 DevStack 源码,就放在 /home/ 目录下吧:

root # git clone https://github.com/openstack-dev/devstack /home/devstack

然后,使用 DevStack 提供的脚本,新建一个 stack 的系统用户

root # /home/devstack/tools/create-stack-user.sh

为什么要新建一个 stack 用户呢?因此用脚本新建的 stack 用户,是没有用户密码的。后续 DevStack 在部署 Openstack 会多次调用 sudo 命令,这个时候就不需要我们额外输入密码(实际上也不可能,鬼知道脚本什么时候要输入密码)。

设置 DevStack 源码的文件权限,保证 stack 用户能正常访问:

root # chown -R stack:stack /home/devstack/

3. DevStack 配置

DevStack 在部署 Openstack 的时候,回去解析 local.conf 这个配置文件。我们可以通过这个文件来决定,待会需要安装哪些组件(keystone, neutron, nova…),以及 Openstack 的基本网络拓扑。官网的 DevStack Doc 已经对 local.conf 进行了全面的解析,从文章中可以知道,其实 Openstack 就 Neutron 网络组件配置非常复杂(不复杂应该就不能适用灵活多变的网络拓扑吧!)。

本文就不去解析 local.conf 的配置,Networking-OVN 插件已经提供了一个 local.conf.sample,我们直接拿来用就好!

只不过由于我们受到 “GreatFirewall” 无微不至的保护,导致我们无法稳定的访问相关网络资源,因此我们需要稍改一些配置。首先 local.conf 中,需要重新定向 openstack 的源码地址,将其指向到 github 上去。新添加的内容如下:

GIT_BASE=http://github.com
NOVNC_REPO=http://github.com/kanaka/noVNC.git
SPICE_REPO=https://github.com/SPICE/spice-html5.git

其次 openstack 是基于 python 写的,因此部署过程中,频繁的需要用 pypi 来安装相关包。由于国内访问 python.org 是很不稳定的,因此我们最好是去使用豆瓣的 pypi 源,改动如下:

stack $ mkdir ~/.pip
stack $ cat > ~/.pip/pip.conf << EOF
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
EOF

最后 DevStack 在部署的过程中,需要去下载很多文件到 /home/devstack/files 目录下。其中有两个文件,下载的时候经常容易失败。一个是 get-pip.py 这个文件,另一个是 cirros-0.3.4-x86_64-disk.img 这个文件。因此我们直接手动下载好,放到对应目录就好:

stack $ cd /home/devstack/files/
stack $ wget https://bootstrap.pypa.io/get-pip.py
stack $ wget http://images.trystack.cn/cirros/cirros-0.3.4-x86_64-disk.img

4. 部署 Openstack

到这里了,就只需要直接运行 DevStack 的 stack.sh 脚本就好了,万幸的话,你会直接成功,看到如下信息:

stack $ cd /home/devstack/
stack $ ./stack.sh
......

要是不幸的话,就只能自己多看 log,多查查了。只不过问题多半是 python 包安装超时,或者组件源码下载超时。手动把对应包安装下,然后重复运行 ./stack.sh 就好了。

2

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kolla是一个OpenStack部署工具,可以通过Kolla来部署OVS和OVN。 以下是在Kolla中部署OVN的基本步骤: 1. 安装Kolla-Ansible 按照Kolla-Ansible的官方文档安装。 2. 创建配置文件 在/etc/kolla目录下创建globals.yml和passwords.yml两个文件。在globals.yml中定义一些全局变量,如下所示: ``` kolla_base_distro: "centos" kolla_install_type: "binary" kolla_internal_vip_address: "192.168.1.10" network_interface: "eno1" neutron_plugin_agent: "ovn" ``` 这些变量的含义如下: - kolla_base_distro:指定使用的Linux发行版,这里使用的是CentOS。 - kolla_install_type:指定使用的安装类型,这里使用的是二进制包安装。 - kolla_internal_vip_address:指定OpenStack内部的虚拟IP地址。 - network_interface:指定OpenStack使用的网络接口。 - neutron_plugin_agent:指定使用的网络代理,这里使用的是OVN。 在passwords.yml中定义一些密码,如下所示: ``` keystone_admin_password: "keystone_admin_password" neutron_ovn_metadata_agent_shared_secret: "neutron_ovn_metadata_agent_shared_secret" ``` 这些密码是在安装过程中需要使用的。 3. 部署OVS和OVN 使用Kolla-Ansible部署OVS和OVN: ``` $ sudo kolla-ansible -i <inventory-file> deploy ``` 其中,`<inventory-file>`是Kolla-Ansible使用的主机清单文件。 4. 配置OVN部署完成后,需要配置OVN。可以使用OpenStack的Dashboard或者命令行工具来进行配置。具体配置方法可以参考OVN的官方文档。 5. 启动服务 在配置完成后,需要启动OpenStack的服务: ``` $ sudo kolla-ansible -i <inventory-file> post-deploy ``` 这样就完成了在Kolla中部署OVN的过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值