容器化安装openstack单节点环境
准备工作
环境搭建基于vmware esxi上的虚拟机进行搭建
虚拟机信息
cpu 2*2 memory 40G ram 8G nic 2 centos 7 [root@kolla ~]# uname -a Linux kolla 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux [root@kolla ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@kolla ~]#
源信息
采用原始默认源信息,这里没有更换网络源,可参看源更新
yum makecache yum -y update yum -y install vim yum -y install net-tools
网卡信息
ens160作为openstack环境管理网ip,隧道网ip,存储网Ip。ens160也作为host默认路由,可以 连接外网,用于远程horizon登录和下载依赖包。
ens192作为外网ip,需保证ens192可联通互联网,后面br-ex绑定这个网卡,虚拟机是通过这块网卡访问外网
vi /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=ens160 UUID=93124eda-37a5-4cc0-8ff7-820606256ce3 DEVICE=ens160 ONBOOT=yes IPADDR=192.168.26.6 PREFIX=24 GATEWAY=192.168.26.254 DNS1=10.19.8.10 DNS2=10.19.8.12
vi /etc/sysconfig/network-scripts/ifcfg-ens192
TYPE=Ethernet BOOTPROTO=static DEFROUTE=no PEERDNS=yes PEERROUTES=no IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=ens192 UUID=b16e217e-f9fc-40cd-a9ab-3eed7e3ea6a4 DEVICE=ens192 ONBOOT=yes IPADDR=192.168.30.31 PREFIX=24
修改主机名
vi /etc/hostname kolla vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.26.6 kolla kolla
安装NTP
# CentOS 7 yum install ntp systemctl enable ntpd.service systemctl start ntpd.service
手工同步时间
ntpdate 0.centos.pool.ntp.org
关闭 Selinux
vi /etc/selinux/config SELINUX=disabled
重启系统,然后检查Selinux是否关闭
[root@kolla ~]# sestatus SELinux status: disabled [root@kolla ~]#
关闭Firewalld
由于是开发测试环境,需要开启大量的服务端口,为了简化配置,所以关闭防火墙,但是如果是生产环境或者暴露公网IP的服务器,强烈建议不要关闭防火墙
systemctl status firewalld systemctl stop firewalld systemctl disable firewalld systemctl status firewalld firewall-cmd --state
-
# egrep "vmx|svm" /proc/cpuinfo
如果没有开启虚拟化请开启虚拟化
重启系统reboot生效note:这一步就是确认虚拟机能支持嵌套虚拟化,个人感觉这一步多余,之前用devstack安装也没有做这一步操作,通过配置虚拟化类型为qemu,也可以在虚拟机中创建虚拟机。
安装基础包
一定要先启用EPEL的repo源
# yum install epel-release -y
安装基础软件包
# yum install vim net-tools tmux python-devel libffi-devel gcc openssl-devel git python-pip -y
安装docker
设置repo
# tee /etc/yum.repos.d/docker.repo << 'EOF' [dockerrepo] name=Docker Repository baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/ enabled=1 gpgcheck=1 gpgkey=https://yum.dockerproject.org/gpg EOF
安装Docker 1.12.5
目前最新版本的Docker是1.13.1,Kolla目前支持的Docker是1.12.x,所以我们要指定Docker的版本来安装,并且一定要采用Docker官方的源,不能使用红帽的源,红帽的源的Docker是有bug。
# yum install docker-engine-1.12.5 docker-engine-selinux-1.12.5 -y
设置docker
# mkdir /etc/systemd/system/docker.service.d # tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF' [Service] MountFlags=shared EOF
编辑/usr/lib/systemd/system/docker.service
# ExecStart=/usr/bin/dockerd ExecStart=/usr/bin/dockerd --insecure-registry 192.168.26.6:4000
重启服务
# systemctl daemon-reload # systemctl enable docker # systemctl restart docker # systemctl status docker
搭建Registry服务器
默认docker的registry是使用5000端口,对于OpenStack来说,有端口冲突,所以我将端口改成了4000。
# docker run -d -v /opt/registry:/var/lib/registry -p 4000:5000 \ --restart=always --name registry registry:2 [root@kolla ~]# docker ps -a de67c9de6dbb registry:2 "/entrypoint.sh /etc/" 28 hours ago Up 2 hours 0.0.0.0:4000->5000/tcp registry [root@kolla ~]# netstat -antl |grep 4000 tcp6 0 0 :::4000 :::* LISTEN [root@kolla ~]#
安装Ansible和openstack镜像包
Kolla项目的Mitaka版本要求ansible版本低于2.0,Newton版本以后的就只支持2.x以上的版本。
# yum -y install ansible
kolla官