准备部署主机¶
在生产环境中安装 OpenStack 时,我们建议使用一个单独的部署主机,该主机包含 Ansible 并编排目标主机上的 OpenStack-Ansible (OSA) 安装。在测试环境中,我们建议使用其中一个基础设施目标主机作为部署主机。
要将目标主机用作部署主机,请在部署主机上按照 准备目标主机 中的步骤操作。
配置操作系统¶
安装操作系统¶
在部署主机上安装以下受支持的操作系统
- Ubuntu Server 24.04 (Noble Numbat) 64 位
- Debian 12 (Bookworm) 64 位
- Debian 13 (Trixie) 64 位
- CentOS 10 Stream 64 位
- Rocky Linux 10 64 位
配置至少一个网络接口以访问互联网或合适的本地仓库。
配置 Ubuntu¶
安装其他软件包并配置网络时间协议 (NTP)。在开始之前,我们建议升级您的系统软件包和内核。
更新软件包源列表
# apt update
升级系统软件包和内核
# apt dist-upgrade
重新启动主机。
如果操作系统安装期间未安装其他软件包,请安装它们
# apt install build-essential git chrony openssh-server python3-dev sudo
配置 NTP 以与合适的时源同步。
配置 CentOS Stream / Rocky Linux¶
安装其他软件包并配置网络时间协议 (NTP)。在开始之前,我们建议升级您的系统软件包和内核。
升级系统软件包和内核
# dnf upgrade
禁用 SELinux。编辑
/etc/sysconfig/selinux,确保SELINUX=enforcing已更改为SELINUX=disabled。对于从版本 9 开始的 RHEL 发行版,禁用 SELinux 的推荐方法是通过 grubby 使用引导加载程序
# grubby --update-kernel ALL --args selinux=0
重新启动主机。
如果操作系统安装期间未安装其他软件包,请安装它们
# dnf install git chrony openssh-server python3-devel sudo # dnf group install "Development Tools"
配置 NTP 以与合适的时源同步并启动 chronyd
# systemctl enable chronyd # systemctl start chronyd
在 CentOS Stream 和 Rocky Linux 上默认启用
firewalld服务,并且其默认规则集会阻止 OpenStack 组件正常通信。停止firewalld服务并屏蔽它以防止其启动# systemctl stop firewalld # systemctl mask firewalld
配置 SSH 密钥¶
Ansible 使用带有公钥身份验证的 SSH 来连接部署主机和目标主机。为了减少 Ansible 操作期间的用户交互,请不要在密钥对中包含密码短语。但是,如果需要密码短语,请考虑使用 ssh-agent 和 ssh-add 命令在执行 Ansible 操作之前临时存储密码短语。
配置网络¶
如果部署服务器无法使用安全 Shell (SSH) 连接到容器,Ansible 部署将失败。
配置部署主机(执行 Ansible 的位置)位于与容器管理网络指定相同的 Layer 2 网络上。默认情况下,这是 br-mgmt 网络。此配置减少了由连接问题引起的失败率。
从以下示例范围中选择一个 IP 地址分配给部署主机
Container management: 172.29.236.0/22 (VLAN 10)
安装源代码和依赖项¶
安装部署主机的源代码和依赖项。
注意
如果您使用有限的连接进行安装,请在继续之前查看 使用有限的连接进行安装。
将 OpenStack-Ansible Git 仓库的最新稳定版本克隆到
/opt/openstack-ansible目录# git clone -b 32.0.0.0rc1 https://opendev.org/openstack/openstack-ansible /opt/openstack-ansible
如果无法访问 opendev.org 来运行 git clone,可以使用 github.com 作为替代仓库
# git clone -b 32.0.0.0rc1 https://github.com/openstack/openstack-ansible.git /opt/openstack-ansible
切换到
/opt/openstack-ansible目录,并运行 Ansible 引导脚本# scripts/bootstrap-ansible.sh
使用 Alpine 配置 Docker¶
这是一种替代的部署主机配置实现,包括使用 Docker 容器作为部署主机。
这既不受支持,也没有在 CI 中进行测试,因此您应自行承担风险使用它。
在开始之前,我们建议升级您的 Docker 主机系统软件包和内核。
准备您的 OpenStack Ansible Dockerfile
FROM alpine RUN apk add --no-cache bash build-base git python3-dev openssh-client openssh-keygen sudo py3-virtualenv iptables libffi-dev openssl-dev linux-headers coreutils curl RUN git clone -b 32.0.0.0rc1 https://git.openstack.org/openstack/openstack-ansible /opt/openstack-ansible WORKDIR /opt/openstack-ansible RUN /opt/openstack-ansible/scripts/bootstrap-ansible.sh ENTRYPOINT ["bash"]
构建并运行您的部署主机容器
# docker build . -t openstack-ansible:32.0.0.0rc1 # docker run -dit --name osa-deploy openstack-ansible:32.0.0.0rc1 # docker exec -it osa-deploy bash
配置 NTP 以与 Docker 主机上的合适的时源同步。