基于kolla-ansible 部署openstack Yoga版本用于开发测试,本文绝对是目前为止最简单部署的了,请看完全文。
角色 | 网络 | 备注 |
---|---|---|
部署机 | eth0:10.10.1.115 | 一个普通docker容器 |
控制节点 | eth0:10.14.203.171 | 至少一个网卡 |
计算节点 | eth0:xxx eth1: trunk模式 | 大于等于两个网卡 |
一、部署kolla-ansible
这里在部署机 10.10.1.115 上部署了 kolla-ansible,这里基于docker起了个centos8 x86_64的容器,省事还好迁移
1. 安装kolla-ansible
启动kolla deploy容器, 用于部署以及后续迁移
#docker run -it --privileged --network host -h KOLLA_DEPLOY --name kolla_deploy -v /data:/data:rw centos:8
#使用aliyun centos8 base/epel repo (忽略)
#yum -y install gcc gcc-c++ make cmake python3-pip openssl-devel python3-devel wget openssh-clients rsync git
#yum update
#rm -rf /etc/yum.repos.d/*Linux*
#yum update libmodulemd
#dnf -y install gcc zlib* libffi-devel
升级pip源
#mkdir /root/.pip
#vim /root/.pip/pip.conf
[global]
timeout = 6000
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
#pip3 install -U pip
安装kolla-ansible,kolla 版本与 openstack 版本对应关系
#pip3 install ansible==4.10.0
#pip3 install 'ansible-core==2.11.12'
#pip3 install kolla-ansible==14.0.0
安装kolla-ansible依赖,这块kolla-ansible改动较大,社区将公共的部分插件、role等拆分出去了
#vim /usr/loca/share/kolla-ansible/requirements.yml #变更collections地址,社区tag不存在了
---
collections:
- name: https://jihulab.com/james-curtis/ansible-collection-kolla
type: git
version: stable/yoga
#kolla-ansible install-deps
#不然报错 RROR! Failed to switch a cloned Git repo `https://opendev.org/openstack/ansible-collection-kolla` to the requested revision `stable/yoga`.
安装sshpass,默认centos8 没有yum包,需要源码安装
#wget https://sourceforge.net/projects/sshpass/files/latest/download -O sshpass.tar.gz
#cd ssh-pass-1.10
#./configure
#make
#make install
2. 配置kolla-ansible
#mkdir /etc/kolla
#cp -rf /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
#cp -rf /usr/local/share/kolla-ansible/ansible/inventory/* /etc/kolla/
优化ansible 性能
#mkdir /etc/ansible
#vim /etc/ansible/ansible.cfg
[default]
host_key_checking=False
pipelining=True
forks=100
测试ansible
# /usr/local/bin/ansible -i /etc/kolla/all-in-one all -m ping
生成openstack组件密码,该操作会填充/etc/kolla/passwords.yml
#kolla-genpwd
#vim /etc/kolla/globals.yml
# Kolla options
kolla_base_distro: "centos"
kolla_install_type: "source"
openstack_release: "yoga"
kolla_internal_vip_address: "10.14.203.171"
# Docker options
# docker_registry: "registry.cn-beijing.aliyuncs.com"
# docker_namespace: "kollaimage"
openstack_logging_debug: "True"
enable_openstack_core: "yes"
# Neutron - Networking Options
network_interface: "eth0"
neutron_external_interface: "eth1"
neutron_plugin_agent: "openvswitch"
enable_neutron_provider_networks: "yes"
# OpenStack services
enable_cinder: "yes"
enable_ironic: "yes"
3. 部署openstack
配置inventory清单 multinode,再部署服务
#cd /etc/kolla/
#vim multinode
#/usr/local/bin/kolla-ansible -i ./multinode bootstrap-servers
#/usr/local/bin/kolla-ansible -i ./multinode prechecks
#/usr/local/bin/kolla-ansible -i ./multinode pull
#/usr/local/bin/kolla-ansible -i ./multinode deploy
#/usr/local/bin/kolla-ansible -i ./multinode post-deploy
PS:
为了方便后续部署,这里将上面的容器部署机打成了docker镜像,方便后续万一社区又变动又部署麻烦。所以只需要docker run一下就可以了~
#docker pull crpi-m4g8ngb4b14cawpf.cn-shanghai.personal.cr.aliyuncs.com/robin5911/kolla_ansible:v1-yogo-b92df2d
参考:
https://releases.openstack.org/teams/kolla.html#
https://www.lvbibir.cn/posts/tech/openstack-kolla-ansible-allinone-train/
https://blog.youkuaiyun.com/qq_35485875/article/details/128868634