实验环境配置:
centos7 服务器(CentOS-7-x86_64-Minimal-2003)
双网卡(实现一张网卡连接外网enp0s20u1,一张网卡连接内网enp2s0)
注:OpenStack配置使用的环境都已经作为工具包上传(),如图所示。
安装步骤详解:
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便可连接校园网。
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文件中的校园网账号和元素位置进行修改,在修改时,建议详细了解脚本文件中的内容,防止出错。如下图所示(不同页面登录按钮的元素定位不同)。
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文件,将主机名进行替换,如下图所示。
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,如下所示,把脚本中红框地方换成自己主机的外网地址,这样脚本会自己帮你创建一个连接外网的实例。
25、执行如下命令创建网络:
source /etc/kolla/admin-openrc.sh
bash /usr/share/kolla-ansible/init-runonce
26、此时OpenStack便可创建网络,最终OpenStack搭建完成。