kolla-ansible-----快速部署openstack
基本环境
操作系统:CentOS Linux release 7.5.1804 (Core)
内核版本:3.10.0-862.el7.x86_64
docker版本:1.13.1
1、禁用宿主机的 Libvirt 服务
大多数操作系统会默认启动 Libvirt,但使用 Kolla 来部署 OpenStack 的话,Libvirt 应该在容器中运行并管理虚拟机。
所以宿主机的 Libvirt 需要被关闭,以免造成冲突。
systemctl stop libvirtd.service systemctl disable libvirtd.service
部署kolla
1、安装依赖
yum install epel-release python-pip yum install -y python-devel libffi-devel openssl-devel gcc pip install -U pip
2、配置国内pip源
不然这个速度很慢
mkdir ~/.pip cat << EOF > ~/.pip/pip.conf [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ [install] trusted-host=pypi.tuna.tsinghua.edu.cn EOF
3、安装stable版kolla
下载源码 git clone https://git.openstack.org/openstack/kolla -b stable/rocky 安装依赖 pip install -r kolla/requirements.txt -r kolla/test-requirements.txt 源码安装 pip install kolla/
4、安装tox,生成配置文件
pip install -U tox cd kolla/ tox -e genconfig cp -rv etc/kolla /etc/
编辑 kolla-build.conf:控制 Kolla Image Build 的细则。
vim /etc/kolla/kolla-build.conf [DEFAULT] base = centos install_type = source namespace = kolla push = false # The Docker Images tag (string value) tag = 6.0.0
5、docker安装
yum install docker -y 配置docker mountflags 在[Service]中添加MountFlags=shared # vim /usr/lib/systemd/system/docker.service [Service] MountFlags=shared systemctl daemon-reload systemctl restart docker
MountFlags=shared为neutron的要求,必须配置为share,否则后面部署的时候neutron可能会有问题。
编译镜像
简单的来理解 Kolla 组件的话,它就是一个自动化构建部署 OpenStack 服务所需要的镜像的工具。其内含组织了大量的 Dockerfile,供构建镜像时使用。
kolla-build
也可以添加参数项 -p default
对应 kolla-build.conf 的 [profiles] Sections,default 类型表示仅构建核心项目的镜像。
如果个别镜像编译失败可以重新执行以上操作,因为docker的容器缓存,重新编译会很快。
NOTE:但有些情况下,可能会把错误的配置参数 Cache 住,此时建议执行 Cleanup 操作之后再重跑:
# 从系统中移除部署的容器 tools/cleanup-containers # 移除由于残余网络变化引发 docker 启动的 neutron-agents 主机 tools/cleanup-host # 从 Cache 中移除所有的 docker image tools/cleanup-images
也可以查看一下可编译的镜像
kolla-build --list-images
安装kolla-ansible
1、安装ansible
ansible的版本要大于2.0
pip install ansible
2、安装kolla-ansible
git clone https://github.com/openstack/kolla-ansible -b stable/rocky cd kolla-ansible pip install -r requirements.txt -r test-requirements.txt -e .
配置一下
cp etc/kolla/globals.yml /etc/kolla/ cp etc/kolla/passwords.yml /etc/kolla/ kolla-genpwd cp ansible/inventory/* /root/
3、修改文件
编辑 globals.yml文件
kolla_install_type: "source" openstack_release:需要与镜像的 Tag 一致,否则部署时找不到镜像。 network_interface:指定管理网接口 neutron_external_interface:指定外部网接口 kolla_internal_vip_address:指定 HAProxy 虚拟 IP,单点部署可以弃用 HAProxy enable_haproxy: "no"。 enable_horizon: "yes"
4、修改 Hypervisor Type
因为操作环境是 VMware 的虚拟机,所以存在嵌套虚拟化不支持 KVM 的问题,如果你希望启动 OpenStack 实例,那就需要启用 QEMU(Default KVM)。
mkdir -p /etc/kolla/config/nova cat << EOF > /etc/kolla/config/nova/nova-compute.conf [libvirt] virt_type=qemu cpu_mode = none EOF
检查配置
kolla-ansible prechecks
开始部署
kolla-ansible deploy
报错
在用Dockerfile制作镜像的时候总是出现如下错误
HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
原因分析:
在下载python库的时候,由于国内网络原因,python包的下载速度非常慢,查看pip 文档,只要在 pip的时候控制超时即可, 具体参数为 --default-timeout=100, 后面的时间可以自己指定。
可以在kolla-build中指定一下:
[root@centos kolla]# pwd /root/kolla [root@centos kolla]# more tox.ini | grep pip install_command = pip --default-timeout=1000 install {opts} {packages}