kolla部署Openstack步骤

安装docker

每台节点机器都要安装 docker 并设置下列操作

1
curl -sSL https://get.docker.io | bash
  • docker daemon 设置为 shared 模式
1
2
3
4
5
6
7
mkdir -p /etc/systemd/system/docker.service.d/kolla.conf
cat > /etc/systemd/system/docker.service.d/kolla.conf << EOF
[Service]
MountFlags=shared
EOF
systemctl daemon-reload
systemctl restart docker
  • 加速 docker ,设置本地镜像仓库
1
2
3
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["http://3b374b76.m.daocloud.io"], "insecure-registries": ["172.16.44.101:4000"]}
EOF
  • 设置本地 docker 镜像仓库
1
2
3
docker run -d -p 4000:5000 --restart=always -v /opt/data/registry:/var/lib/registry --name registry registry
# 验证
curl -i http://172.16.44.101:4000/v2/

安装基本工具

1
2
3
4
apt install python-dev libffi-dev gcc libssl-dev python-selinux python-setuptools python-pip
pip install docker kolla-ansible
# 拷贝配置文件至/etc/
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla /etc/

kolla-ansible配置

1
2
3
4
5
6
7
8
9
cat /etc/kolla/global.yml

在虚机上部署要设置为qemu

设置本地镜像服务器

双网卡环境,一块设置静态IP,一块设置自动获取

openstack_release版本号

部署openstack

mutlinode 部署时,必须先从官方 docker 仓库中 pull 必要 image,push 到本地镜像仓库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# pull镜像
kolla-ansible -i multinode pull

# 将镜像打标后push到本地镜像仓库
images=`docker images | awk '$1 !~ /172.16.44.101/ && $2=="queens" {print $1":"$2}'`
# taging
for image in $images
do
docker tag $image
done

tagedImages=`docker images | awk '$1 ~ /172.16.44.101/ && $2=="queens" {print $1":"$2}'`
# pull to local register
for image in $tagedImages
do
docker push $image
# remove tag
docker rmi $image
done
  • 部署
1
2
3
4
5
# 预检查,注意 prechecks 有`MountFlags`报错时,
# /usr/local/share/kolla-ansible/ansible/roles/neutron/tasks/precheck.yml中的
# result.stdout.find('MountFlags=shared')的值应该等于shared,而不是1048576
kolla-ansible -i multinode prechecks
kolla-ansible -i multinode deploy
  • 安装管理工具
1
pip install python-openstackclient python-glanceclient python-neutronclient
  • 生成管理配置
1
2
3
kolla-ansible post-deploy -i multinode
# 生成密码
kolla-genpwd
  • 初始化管理配置
1
source /etc/kolla/admin-openrc.sh
  • 编辑 init-runonce,初始化网络环境
1
2
cp /usr/local/share/kolla-ansible/init-runonce .
./init-runonce