一、系统环境
root@odoo16e-server:~# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.5 LTS"root@odoo16e-server:~# python3 --version
Python 3.10.12root@odoo16e-server:~# pip --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)root@odoo16e-server:~# pip3 --version
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)root@odoo16e-server:~# docker --version
Docker version 27.2.1, build 9e34c9b
二、openstack版本时间列表
Series | Status | Initial Release Date | Next Phase | EOL Date |
---|---|---|---|---|
2025.1 Epoxy (SLURP) | Future | 2025-04-02 estimated (schedule) | Development estimated 2024-10-02 | |
2024.2 Dalmatian | Development | 2024-10-02 estimated (schedule) | Maintained estimated 2024-10-02 | |
2024.1 Caracal (SLURP) | Maintained | 2024-04-03 | Unmaintained estimated 2025-10-03 | |
2023.2 Bobcat | Maintained | 2023-10-04 | End Of Life estimated 2025-04-04 | |
2023.1 Antelope (SLURP) | Maintained | 2023-03-22 | Unmaintained estimated 2024-10-30 | |
Zed | Unmaintained | 2022-10-05 | End Of Life TBD | |
Yoga | Unmaintained | 2022-03-30 | End Of Life TBD | |
Xena | Unmaintained | 2021-10-06 | End Of Life TBD | |
Wallaby | Unmaintained | 2021-04-14 | End Of Life TBD | |
Victoria | Unmaintained | 2020-10-14 | End Of Life TBD | |
Ussuri | End Of Life | 2020-05-13 | 2024-02-20 | |
Train | End Of Life | 2019-10-16 | 2024-02-20 |
官方文档:OpenStack Releases: OpenStack Releases
三、安装步骤
1、更新安装源
sudo apt update
2、安装python依赖库
sudo apt install git python3-dev libffi-dev gcc libssl-dev -y
*在第二步安装完成后,官方文档建议使用python虚拟环境
python3-venv 实际安装中,启用虚拟环境会出现一些文件和依赖库找不到的情况,有科学上网的情况下不使用python虚拟环境更容易成功。
3、更新Pip
pip install -U pip
4、安装ansible,*此步有版本兼容要求 ,详细查看官方文档
pip install 'ansible-core>=2.14,<2.16'
5、 安装kolla-ansible,*有科学上网速度更快,更易成功。
pip install git+https://opendev.org/openstack/kolla-ansible@stable/2023.2
验证
root@odoo16-server:~# kolla-ansible --version
17.5.1
6、创建/etc/kolla目录
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
7、复制globals.yml和
passwords.yml
至/etc/kolla
目录。
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
8、将存文件all-in-one复制
到当前目录
cp /usr/local/share/kolla-ansible/ansible/inventory/all-in-one .
9、安装 Ansible Galaxy 依赖项
kolla-ansible install-deps
10、准备初始配置
kolla-genpwd
此命令会自动在/etc/kolla/passwords.yml文件中生成需用到的密码,手动改成我们容易记忆的密码
vim /etc/kolla/passwords.yml
ironic_database_password: OP51scqsHjnnhyrcNP78EgrueWfCZqLsWsAxr6vY
ironic_inspector_database_password: wFGxG2AGUObjFfAgjTik6xKyy45u1q82wJaM9Cpa
ironic_inspector_keystone_password: 3oO8YGp0C3lLdCWe9po2KlLuLUtZAlbDS5grxAjn
ironic_keystone_password: LnnnShk6HEM8THNgGrng9wqVFzFGtKNSIIzCfYMd
keepalived_password: NzQGRdKBrw3WP9FFbAG0cwHpUNpDMEUolzEWn2Dm
keystone_admin_password: 【登入密码】
keystone_database_password: xaYRCMsOtfPBs27upLeeC8Ve2VuZcmhuKEXvxXFE
keystone_federation_openid_crypto_password: U5q5RIrkZawlGtR0sgHWWMYjO36UJtPWBPnC1vx2
修改/etc/kolla/globals.yml文件
vim /etc/kolla/globals.yml
网络部分:
#**********
kolla_internal_vip_address: "10.0.49.88"#**************
network_interface: "ens160"neutron_external_interface: "ens190"
*network_interface设备正常连接,并配IP4可正常上网和科学上网,和10.0.49.88在同一网段。
*neutron_external_interface 设备为启用,但不连接状态
启用裸金属配置
#enable_influxdb: "{{ enable_cloudkitty | bool and cloudkitty_storage_backend == 'influxdb' }}"
enable_ironic: "yes"
#enable_ironic_neutron_agent: "{{ enable_neutron | bool and enable_ironic | bool }}"
裸金属配置部分
#############################
# Ironic options
#############################
# dnsmasq bind interface for Ironic Inspector, by default is network_interface
#ironic_dnsmasq_interface: "{{ network_interface }}"
ironic_cleaning_network: "public1"
# The following value must be set when enabling ironic, the value format is a
# list of ranges - at least one must be configured, for example:
# - range: 192.168.0.10,192.168.0.100
# See Kolla Ansible docs on Ironic for details.
#ironic_dnsmasq_dhcp_ranges:
# PXE bootloader file for Ironic Inspector, relative to /var/lib/ironic/tftpboot.
#ironic_dnsmasq_boot_file: "pxelinux.0"# PXE bootloader file for Ironic Inspector, relative to /tftpboot.
ironic_dnsmasq_dhcp_ranges:- range: "192.168.5.100,192.168.5.120,255.255.255.0"routers: "192.168.5.1"
# # PXE bootloader file for Ironic Inspector, relative to /tftpboot.
ironic_dnsmasq_boot_file: "pxelinux.0"
ironic_cleaning_network: "public1"
ironic_dnsmasq_default_gateway: 192.168.5.1
11、 带有 kolla 部署依赖项的引导服务检查
kolla-ansible -i ./all-in-one bootstrap-servers
12、对主机进行部署前检查
kolla-ansible -i ./all-in-one prechecks
13、实际的OpenStack部署
kolla-ansible -i ./all-in-one deploy
部署成功后,裸金属向导界面为
注册节点驱动属性增加http下载
四、其他问题
1、部署出问题时,摧毁系统重新部署。
kolla-ansible destroy -i ./all-in-one --yes-i-really-really-mean-it
2、安装CLI客户端
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/2023.2
3、生成管理员访问凭据文件
kolla-ansible post-deploycp /etc/kolla/admin-openrc.sh .
使用CLI访问时,可先启用
. admin-openrc.sh
运行测试
root@odoo16e-server:~# . admin-openrc.sh
root@odoo16e-server:~# openstack compute service list
+--------------------------------------+----------------+-----------------------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+--------------------------------------+----------------+-----------------------+----------+---------+-------+----------------------------+
| 67f25603-5d6e-4327-a9d2-b0fd341876f3 | nova-conductor | odoo16e-server | internal | enabled | up | 2024-09-19T03:31:17.000000 |
| f49326e1-1608-4546-bed0-123dd2e52af8 | nova-compute | odoo16e-server | nova | enabled | up | 2024-09-19T03:31:13.000000 |
| b26f35c0-bb02-4151-8df4-e30d65eb6e4a | nova-compute | odoo16e-server-ironic | nova | enabled | up | 2024-09-19T03:31:19.000000 |
| 9b988858-bcbf-4fce-8b55-c0c01e30a463 | nova-scheduler | odoo16e-server | internal | enabled | up | 2024-09-19T03:31:19.000000 |
+--------------------------------------+----------------+-----------------------+----------+---------+-------+----------------------------+
五、文档参考
1、快速安装向导
Quick Start for deployment/evaluation — kolla-ansible 17.5.1.dev4 documentation
2、裸金属配置向导
Ironic - Bare Metal provisioning — kolla-ansible 17.5.1.dev4 documentation