kolla ansible ALL IN ONE快速部署 OpenStack

主机环境 主机必须满足以下最低要求: 2 个网络接口(1个外网,1个内网) 8GB 主内存 40GB 磁盘空间 50GB的数据盘 操作系统:Ubuntu 22.04 Docker安装 # 安装必要的软件包以支持 HTTPS 传输、CA 证书、curl、gnupg-agent 和 software-p

主机环境

主机必须满足以下最低要求:

  • 2 个网络接口(1个外网,1个内网)

  • 8GB 主内存

  • 40GB 磁盘空间

  • 50GB的数据盘

  • 操作系统:Ubuntu 22.04

Docker安装

# 安装必要的软件包以支持 HTTPS 传输、CA 证书、curl、gnupg-agent 和 software-properties-common
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

# 下载 Docker 的 GPG 密钥并保存到 /etc/apt/keyrings/docker.asc
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc

# 添加 Docker APT 仓库,使用 USTC 镜像源,并配置密钥
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 更新 APT 包索引以包含新添加的 Docker 仓库
sudo apt-get update

# 安装特定版本的 Docker CE、Docker CLI 和 containerd.io
sudo apt-get install docker-ce=5:24.0.9-1~ubuntu.22.04~jammy docker-ce-cli=5:24.0.9-1~ubuntu.22.04~jammy containerd.io

APT安装依赖

sudo apt update
sudo apt install git python3-dev libffi-dev gcc libssl-dev python3-venv libglib2.0-dev libdbus-1-dev python3-pip -y

创建一个Python虚拟环境进行部署

python3 -m venv /path/to/venv
source /path/to/venv/bin/activate

PIP源以及更新

pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pip install -U pip

安装 Kolla-ansible

# 安装特定版本的 ansible-core
pip install 'ansible-core==2.14.15'

# 安装 kolla-ansible 包
pip install kolla-ansible

# 从指定的 Git 仓库安装 kolla-ansible 的稳定分支
pip install git+https://opendev.org/openstack/kolla-ansible@stable/2023.2

# 创建 /etc/kolla 目录(如果不存在)
sudo mkdir -p /etc/kolla

# 更改 /etc/kolla 目录的所有者为当前用户
sudo chown $USER:$USER /etc/kolla

# 复制 kolla-ansible 的示例配置文件到 /etc/kolla 目录
cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

# 复制 kolla-ansible 的 all-in-one 库存文件到当前目录
cp /path/to/venv/share/kolla-ansible/ansible/inventory/all-in-one ./

# 安装 kolla-ansible 所需的依赖项
kolla-ansible install-deps

# 生成 kolla 的密码文件
kolla-genpwd

配置globals.yml配置文件

vim /etc/kolla/globals.yml

kolla_base_distro: "ubuntu"
openstack_release: "2023.2"
kolla_internal_vip_address: "192.168.100.151"
network_interface: "ens32"
neutron_external_interface: "ens33"
enable_haproxy: "no"
enable_cinder: "yes"
enable_cinder_backup: "no"
enable_cinder_backend_lvm: "yes"
enable_neutron_provider_networks: "yes"
nova_compute_virt_type: "qemu"

将数据盘创建LVM管理

root@server:~# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0 63.9M  1 loop /snap/core20/2318
loop1    7:1    0 63.7M  1 loop /snap/core20/2434
loop2    7:2    0   87M  1 loop /snap/lxd/29351
loop3    7:3    0 38.8M  1 loop /snap/snapd/21759
sda      8:0    0   45G  0 disk
├─sda1   8:1    0    1M  0 part
├─sda2   8:2    0  512M  0 part /boot
└─sda3   8:3    0 44.5G  0 part /
sdb      8:16   0   50G  0 disk
sr0     11:0    1    2G  0 rom

# 查看当前系统上的所有块设备及其分区信息
pvcreate /dev/sdb

# 创建一个名为cinder-volumes的卷组(Volume Group),并将/dev/sdb添加到该卷组中
vgcreate cinder-volumes /dev/sdb

# 显示卷组cinder-volumes的详细信息
root@server:~# vgdisplay cinder-volumes
  --- Volume group ---
  VG Name               cinder-volumes
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <50.00 GiB
  PE Size               4.00 MiB
  Total PE              12799
  Alloc PE / Size       0 / 0
  Free  PE / Size       12799 / <50.00 GiB
  VG UUID               13Rdff-9cVn-K73x-PKtB-TOMQ-PcKz-t0InUy

通过ansible部署openstack

# 拉取所有在配置文件中定义的 Docker 镜像
kolla-ansible pull -i ./all-in-one

# 引导目标主机,准备它们以运行 Kolla 容器
kolla-ansible bootstrap-servers -i ./all-in-one


# 运行一系列预检查任务,确保系统满足部署 OpenStack 的要求
kolla-ansible prechecks -i ./all-in-one

# 部署 OpenStack 到指定的目标主机
kolla-ansible deploy -i ./all-in-one

访问openstack dashboard打开浏览器输入内网IP

用户名是admin,密码都在opensearch_dashboards_password上

安装OpenStack命令行客户端:

# 安装python-openstackclient,并指定约束文件以匹配特定版本的OpenStack组件
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/2023.2

# 运行kolla-ansible的post-deploy命令来完成OpenStack集群的后期部署任务
kolla-ansible post-deploy

# 将生成的admin用户凭据脚本复制到/root目录下,以便于管理
cp /etc/kolla/admin-openrc.sh /root/admin-openrc

# 加载admin用户的环境变量,使得openstack CLI工具能够使用这些凭证与OpenStack服务进行交互
source /root/admin-openrc

验证


(venv) root@kolla-all-in-one:~# source /path/to/venv/bin/activate
(venv) root@kolla-all-in-one:~# source admin-openrc
(venv) root@kolla-all-in-one:~# openstack hypervisor list
+--------------------------------------+---------------------+-----------------+-----------------+-------+
| ID                                   | Hypervisor Hostname | Hypervisor Type | Host IP         | State |
+--------------------------------------+---------------------+-----------------+-----------------+-------+
| 8799077d-bb3d-4766-8cdd-17d4de4bc952 | server              | QEMU            | 192.168.100.151 | up    |
+--------------------------------------+---------------------+-----------------+-----------------+-------+

Comment