Kolla-Ansible单节点搭建openstack
时间: 2025-06-06 17:49:01 浏览: 16
### 使用 Kolla-Ansible 在单节点上部署 OpenStack 的详细步骤
#### 准备工作
为了确保顺利部署,需准备一台满足最低硬件需求的服务器或虚拟机。建议操作系统选用 Ubuntu 或 CentOS。
#### 配置网络接口
安装好操作系统后,需要配置两个独立的网络接口来区分管理网络和数据网络:
```bash
rm -r /etc/netplan/*
vi /etc/netplan/controller.yaml
```
编辑后的 `controller.yaml` 文件应如下所示[^3]:
```yaml
network:
version: 2
renderer: networkd
ethernets:
ens33: # 替换成实际网卡名称,可通过ip a查看
addresses:
- $LOCAL_ADDRESS/24 # 管理网络IP地址
gateway4: $LOCAL_GATEWAY # 默认网关
nameservers:
addresses: [114.114.114.114, 8.8.8.8]
ens38: # 数据网络网卡
dhcp4: false
```
应用新的网络设置:
```bash
netplan apply
```
#### 安装依赖包并克隆 Kolla-Ansible 源码库
更新系统软件源列表,并安装必要的开发工具和其他依赖项。接着通过 Git 获取最新版的 Kolla 和 Kolla-Ansible 项目代码仓库。
对于基于 Debian 的发行版(如 Ubuntu),可以运行以下命令:
```bash
apt update && apt install git python3-pip libffi-dev gcc make jq -y
pip3 install --upgrade pip setuptools wheel
git clone https://opendev.org/openstack/kolla-ansible.git ~/kolla-ansible
cd ~/kolla-ansible
pip3 install .
```
#### 初始化全局配置文件
创建用于定义整个集群行为模式以及组件间交互方式的基础参数集合——即 global configuration file (`globals.yml`) 。此操作可以通过执行脚本来完成。
```bash
cp -r ./contrib single-node all-in-one
./tools/init-config.py
```
#### 修改 inventory 文件
根据实际情况调整主机清单(`inventory`)中的 IP 地址及其他相关信息,以便让 Ansible 正确识别目标机器。这里假设采用的是全合一(all-in-one)拓扑结构,则只需指定本机回环地址即可。
```ini
[control]
localhost ansible_connection=local
[network:children]
all
[compute:children]
all
[mariadb]
localhost ansible_connection=local
[rabbitmq]
localhost ansible_connection=local
[keystone]
localhost ansible_connection=local
[glance]
localhost ansible_connection=local
[cinder]
localhost ansible_connection=local
[neutron_controller]
localhost ansible_connection=local
[neutron_compute]
localhost ansible_connection=local
[placement]
localhost ansible_connection=local
[horizon]
localhost ansible_connection=local
```
#### 执行预检与部署流程
利用 prechecks playbook 对环境进行初步验证;随后正式发起 openstack services deployment 请求。
```bash
kolla-ansible -i all-in-one prechecks
kolla-ansible -i all-in-one deploy
```
上述指令会依次读取 `/usr/local/share/kolla-ansible/ansible/site.yml` 中的任务描述,并依照其指示顺序加载相应的 role 进行处理[^1]。
#### 后续测试
待服务完全启动完毕后,可尝试新建虚机实例以检验整体功能是否正常运作。此时应该能够成功 ping 通外部互联网资源及内部私有子网内的其他设备[^2]。
#### 清除现有环境 (如有必要)
如果想要重置当前实验平台回到初始状态,那么可以借助 destroy 命令移除所有已创建的服务容器及其关联镜像。
```bash
kolla-ansible destroy -i /root/all-in-one --include-images --yes-i-really-really-mean-it
reboot
```
阅读全文
相关推荐














