实验环境配置:
centos7 服务器(CentOS-7-x86_64-Minimal-2003)
双网卡(实现一张网卡连接外网enp0s20u1,一张网卡连接内网enp2s0)

注:OpenStack配置使用的环境都已经作为工具包上传(),如图所示。

双网卡 openstack all in one openstack双网卡配置_git

安装步骤详解:

1、安装centos7服务器后,不展开进行详述,安装过程中要开启两张网卡。

2、对服务器进行连网认证,在这个环节中,因为是安装的是服务器min版本,所以没有安装浏览器,无法直接在浏览器中对校园网进行登录认证,所以我们初始采用锐捷认证客户端。工具包中锐捷认证客户端的文件为link_network、rjstart两个文件,link_network文件为客户端相关文件需放到系统中的/usr目录下,rjstart为运行脚本将其放到/bin目录下。

3、接下来对rjstart.sh脚本中的参数进行修改,其中-u 后面填写校园网账号,-p后面填写校园网账号密码(切记删除占位符*)。最后我们需要对rjstart.sh添加执行权限,即chmod +x rjstart.sh ,最后bash中直接输入rjstart.sh便可连接校园网。

双网卡 openstack all in one openstack双网卡配置_git_02

4、配置服务器静态ip,vim /etc/sysconfig/network-scripts/ifcfg-enp2s0(此时选中的是校园网认证登录的网卡,也是OpenStack网卡规划的内网网卡)。修改BOOTPROTO="static",IPADDR="10.102.122.218",NETMASK="255.255.128.0",GATEWAY="10.102.127.254"(这里根据自己的情况自行配置)。

5、安装vim,yum install yum;关闭selinux,vim /etc/selinux/config,设置SELINUX=disabled;关闭防火墙,systemctl stop firewalld,systemctl disable firewalld;更改hosts,hostnamectl set-hostname kolla,vim /etc/hosts修改10.102.122.218 kolla;

6、接下来对网络认证进行方式更换,实验发现使用锐捷客户端认证时,docker与物理机进行端口映射出现中断,所以最后采用python+selenium进行网络认证。

7、安装依赖yum install epel-release,yum install python-pip,pip install -U pip,pip install selenium。

8、将工具包中的soft文件夹中的内容复制到centos7的/root/目录下(可以自行选择目录进行存放)。

9、安装Chrome,yum install ./google-chrome-stable_current_x86_64.rpm (安装文件rpm在soft目录下)。

10、对link_net.py文件中的校园网账号和元素位置进行修改,在修改时,建议详细了解脚本文件中的内容,防止出错。如下图所示(不同页面登录按钮的元素定位不同)。

双网卡 openstack all in one openstack双网卡配置_python_03

11、经过上述步骤后,执行link_net.py脚本。python link_net.py,当脚本执行成功提示有OK的信息输出,此时重启centos7,使对系统的基本配置生效(之前修改了selinux,主机名,静态ip设置)。

12、接下来安装OpenStack,首先安装各种工具包yum install python-devel libffi-devel gcc openssl-devel libselinux-python、yum install ansible、pip install kolla-ansible,安装容器,使用官方脚本一键安装curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun(在安装过程中发现系统自带的yum源速度很快,所以没有重新进行配置),在安装Kolla-ansible过程中提示有安装包无法安装,使用pip install --ignore-installed +无法安装的包名,命令强制执行。

13、安装好docker后,需要开启docker,systemctl restart docker,开启自启docker,systemctl enable docker。

14、配置ansible:vim /etc/ansible/ansible.cfg,设置如下host_key_checking=False ;pipelining=True ;forks=100;保存并退出。

15、复制kolla-ansible配置文件:

cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/kolla/

cp /usr/share/kolla-ansible/ansible/inventory/* .

16、安装Kolla,从git克隆Kolla和Kolla Ansible存储库,实验中发现中git上克隆较慢,所以采用借助gitee进行下载,执行git clone https://gitee.com/syk1016/kolla.git;git clone https://gitee.com/syk1016/kolla-ansible.git

17、将配置文件复制到/etc/kolla目录cp -r kolla-ansible/etc/kolla /etc/kolla/;cp kolla-ansible/ansible/inventory/* .;

18、配置OpenStack环境,vim /etc/kolla/globals.yml,修改如下:

kolla_base_distro: "centos"

kolla_install_type: "source"

openstack_release: "train"

kolla_internal_vip_address: "10.102.122.218"

network_interface: "enp2s0"

neutron_external_interface: "enp0s20u1"

enable_haproxy: "no"

19、找到并修改all-in-one文件,将主机名进行替换,如下图所示。

双网卡 openstack all in one openstack双网卡配置_python_04

20、生成密码,首先执行kolla-genpwd,然后对password.yml文件进行编辑,vim /etc/kolla/password.yml,修改eystone_admin_password: admin;

21、部署OpenStack环境

kolla-ansible -i ./all-in-one bootstrap-servers

kolla-ansible -i ./all-in-one prechecks

kolla-ansible -i ./all-in-one pull          # 这一步可以建立私有仓库

kolla-ansible -i ./all-in-one deploy

22、OpenStack需要一个openrc文件,其中设置了管理员用户等的凭据。生成此文件运行kolla-ansible post-deploy;. /etc/kolla/admin-openrc.sh。

23、安装基本OpenStack CLI客户端:pip install python-openstackclient python-glanceclient python-neutronclient。安装成功后输入OpenStack查看是否能够进入环境,提示缺失queue模块。解决办法为找到下面这两个文件,并对其中的import queue修改为 from multiprocessing import Queue as queue(原因为python2.7和python3的区别)。

usr/lib/python2.7/dist-packages/openstack/utils.py

/usr/lib/python2.7/dist-packages/openstack/cloud/openstackcloud.py

24、创建镜像和连接外网的方法,使用kolla自带的初始化脚本init-runonce,vim /usr/share/kolla-ansible/init-runonce,修改为外网的网络ip,如下所示,把脚本中红框地方换成自己主机的外网地址,这样脚本会自己帮你创建一个连接外网的实例。

双网卡 openstack all in one openstack双网卡配置_vim_05

25、执行如下命令创建网络:

source /etc/kolla/admin-openrc.sh

bash /usr/share/kolla-ansible/init-runonce

26、此时OpenStack便可创建网络,最终OpenStack搭建完成。