你需要准备一个很干净的ubuntu22,all-in-one部署
最低环境要求:CPU 4core, RAM 12G, disk 20G+30G, 两个网口(ens3,ens6)
这里的环境只适合部署核心服务,若要部署更多的服务,资源要求水涨船高
disk 20G是系统盘
disk 30G是cinder块存储所需的pv,假设为/dev/vdb
ens3是你的管理口,也作为内部网络网口,ens6是你的提供者网络(外部网络)的网口
安装依赖工具
apt install git python3-dev libffi-dev gcc libssl-dev
安装Python虚拟环境
apt install python3-venv
创建虚拟环境
python3 -m venv /opt/myenv
source /opt/myenv/bin/activate
保证pip最新
pip install -U pip -i https://pypi.douban.com/simple
安装ansible
pip install 'ansible>=4,<6' -i https://pypi.douban.com/simple
安装kolla-ansible
pip install git+https://opendev.org/openstack/kolla-ansible@stable/zed
准备kolla的配置目录
mkdir /etc/kolla
cp -r /opt/myenv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
准备ansible清单
mkdir /root/deploy
cd $_
cp /opt/myenv/share/kolla-ansible/ansible/inventory/* . # copy all-in-one和multinode两个清单
编辑清单
vim all-in-one # 将localhost ansible_python_interpreter=python放在第一行
安装galaxy依赖
kolla-ansible install-deps
配置ansible
mkdir /etc/ansible
cat > /etc/ansible/ansible.cfg << EOF
[defaults]
host_key_checking=False
pipeline=True
forks=100
EOF
测试一下ansible
ansible -i all-in-one all -m ping
生成密码
vim /etc/kolla/passwords.yml
kolla-genpwd # 生成密码
最重要的来了,编辑globals.yml
vim /etc/kolla/globals.yml # 看看一些配置,并修改默认值
cat /etc/kolla/globals.yml | grep -v '^#' | grep -v '^$' # 看看我们都配置了什么
---
workaround_ansible_issue_8743: yes
kolla_base_distro: "ubuntu"
kolla_internal_vip_address: "192.168.5.27"
network_interface: "ens3"
neutron_external_interface: "ens6"
enable_haproxy: "no"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes" # 由此可知我们使用LVM作为块存储
nova_compute_virt_type: "qemu" # 在虚拟机上部署时,需要将默认值kvm改为qemu
创建卷组,用于cinder
vgcreate cinder-volumes /dev/vdb
kolla-ansible开始部署openstack
kolla-ansible -i all-in-one bootstrap-servers # 引导服务器
kolla-ansible -i all-in-one prechecks # 部署前检查,有错误解决错误
kolla-ansible -i all-in-one deploy # 部署
安装OpenStack客户端
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/zed
收尾
kolla-ansible post-deploy # 创建/etc/kolla/clouds.yaml
cp /etc/kolla/clouds.yaml /etc/openstack/
使用浏览器登录你的IP,如192.168.5.27
使用clouds.yaml中的kolla-admin用户名和密码即可登录
外部网络使用flat类型,对应br-ex的名称是physnet1 #可通过docker exec -it neutron_openvswitch_agent /bin/bash -c "cat /etc/neutron/plugins/ml2/openvswitch_agent.ini"查看到