kolla-ansible-----快速部署openstack

基本环境

操做系统:CentOS Linux release 7.5.1804 (Core)python

内核版本:3.10.0-862.el7.x86_64git

docker版本:1.13.1github

一、禁用宿主机的 Libvirt 服务

大多数操做系统会默认启动 Libvirt,但使用 Kolla 来部署 OpenStack 的话,Libvirt 应该在容器中运行并管理虚拟机。
因此宿主机的 Libvirt 须要被关闭,以避免形成冲突。docker

systemctl stop libvirtd.service
systemctl disable libvirtd.service

部署kolla

一、安装依赖

yum install epel-release python-pip
yum install -y python-devel libffi-devel openssl-devel gcc
pip install -U pip

二、配置国内pip源

否则这个速度很慢vim

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

三、安装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/

四、安装tox,生成配置文件

pip install -U tox
cd kolla/
tox -e genconfig
cp -rv etc/kolla /etc/

编辑 kolla-build.conf:控制 Kolla Image Build 的细则。centos

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

 五、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的容器缓存,从新编译会很快。ui

NOTE:但有些状况下,可能会把错误的配置参数 Cache 住,此时建议执行 Cleanup 操做以后再重跑:

# 从系统中移除部署的容器
tools/cleanup-containers 
# 移除因为残余网络变化引起 docker 启动的 neutron-agents 主机 
tools/cleanup-host 
# 从 Cache 中移除全部的 docker image 
tools/cleanup-images

也能够查看一下可编译的镜像

kolla-build --list-images

安装kolla-ansible

一、安装ansible

ansible的版本要大于2.0

pip install ansible

二、安装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/

三、修改文件

编辑 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"

四、修改 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}
相关文章
相关标签/搜索