利用Kolla-ansible部署OpenStack Zed版(单机双网卡)

一、基本说明

1、安装测试环境

指标参数
操作系统Ubuntu server22
CPUAMD Ryzen 7 3700U 4核
RAM9GB
SSD40GB
网卡1个外网(桥接)、1个内网(NAT)
环境VMware Pro15

2、网卡说明

外网网卡:启用网卡并设置IP为空,否则安装neutron时会报错,用于虚拟机对外访问;
内网网卡:用于内部使用,需暂时能访问Internet即可,用于下载依赖。

一、基本配置

1、配置IP地址

$ vi /etc/netplan/00-installer-config.yaml

This is the network config written by 'subiquity'
network:
  ethernets:
    ens33: #内部网卡,需要能访问Internet,下载依赖和部署容器
      dhcp4: no
      addresses:
        - 192.168.1.2/24
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
      nameservers:
        addresses:
          - 114.114.114.114
    ens34:  #外部网卡,处于启用状态但不能分配IP,否则部署网路组件时会报错
      dhcp4: no
      addresses: []
      optional: true
  version: 2

2、配置域名

$ vi /etc/hostname

controller
$ vi /etc/hosts

# 如果controllerIP为127.0.0.1需改为如下
192.168.1.2 controller

3、配置apt源

$ vi /etc/apt/sources.list

#此处使用阿里源
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse

4、更新软件

$ apt update
$ apt upgrade

二、安装openstack

1、安装python工具

$ apt install git python3-dev libffi-dev gcc libssl-dev -y

2、安装虚拟环境

$ apt install python3-venv -y
$ python3 -m venv /kolla/openstack/venv #目录自定义

3、进入虚拟环境

如果退出虚拟环境将无法使用openstack命令和docker

$ source /kolla/openstack/venv/bin/activate

后续操作全部在虚拟环境中操作,退出虚拟环境如下

$ deactivate

4、升级pip以及配置国内源

$ pip config set global.index-url https://mirrors.aliyun.com/pypi/simple 
$ pip install -U pip https://mirrors.aliyun.com/pypi/simple 

5、安装ansible

$ pip install 'ansible>=4,<6'

6、安装openstack版本对应的kolla-ansible

$ pip install git+https://opendev.org/openstack/kolla-ansible@stable/zed

7、创建配置文件目录并附加权限

$ sudo mkdir -p /etc/kolla
$ sudo chown $USER:$USER /etc/kolla

8、复制配置文件

$ cp -r /kolla/openstack/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla

9、复制依赖文件到当前目录

$ cp /kolla/openstack/venv/share/kolla-ansible/ansible/inventory/all-in-one .

10、安装ansible依赖

$ kolla-ansible install-deps

11、生成密码到/etc/kolla/passwords.yml文件中

密码可手动配置,也可以命令生成(推荐用命令),安装前可修改对应密码

$ kolla-genpwd

12、修改/etc/kolla/globals.yml文件

  • 方法一:手动改
$ vi /etc/kolla/globals.yml
docker_registry: "你的docker加速镜像地址或域名,开头无需加入https://"   #可选配置项,请自定义或登录阿里官网的容器服务查看自己的加速镜像地址
kolla_base_distro: "ubuntu"   #系统配置,修改为ubuntu即可
openstack_release: "zed"     #openstack版本
kolla_internal_vip_address: "192.168.1.2" #使用内部网卡的ip
network_interface: "ens33"           #内部网卡名称
neutron_external_interface: "ens34"  #外部网卡名称,此网卡需要启用且没有ip

#服务组件配置:
enable_haproxy: "no" #高可用,如果为yes则kolla_internal_vip_address可以使用独立IP
enable_cinder: "yes" #块存储
enable_cinder_backup: "no"       #是否备份
enable_cinder_backend_lvm: "yes" #使用逻辑存储
enable_neutron_provider_networks: "yes" # 启用外部网络(提供商网络,物理直连)
nova_compute_virt_type: "qemu"    #虚拟化类型(物理机用kvm,VMWare使用qemu)
nova_console: "spice"
  • 方法二:命令(推荐)
# 可选配置项,请自定义或登录阿里官网的容器服务查看自己的加速镜像地址
$ sed -i.bak 's/#docker_registry:/docker_registry: "你的docker加速镜像地址或域名,开头无需加入https://"/' /etc/kolla/globals.yml

$ sed -i.bak 's/#kolla_base_distro: "rocky"/kolla_base_distro: "ubuntu"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#openstack_release: "zed"/openstack_release: "zed"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#kolla_internal_vip_address: "10.10.10.254"/kolla_internal_vip_address: "192.168.1.2"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#network_interface: "eth0"/network_interface: "ens33"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#neutron_external_interface: "eth1"/neutron_external_interface: "ens34"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#enable_haproxy: "yes"/enable_haproxy: "no"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#enable_cinder: "no"/enable_cinder: "yes"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#enable_cinder_backup: "yes"/enable_cinder_backup: "no"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#enable_cinder_backend_lvm: "no"/enable_cinder_backend_lvm: "yes"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#enable_neutron_provider_networks: "no"/enable_neutron_provider_networks: "yes"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#nova_compute_virt_type: "kvm"/nova_compute_virt_type: "qemu"/' /etc/kolla/globals.yml
$ sed -i.bak 's/#nova_console: "novnc"/nova_console: "spice"/' /etc/kolla/globals.yml

13、配置存储卷

如下情况二选一

  • 情况一:新增磁盘或用空闲磁盘
$ lsblk # 查看磁盘分区情况,可选操作
$ pvcreate /dev/sdX
$ vgcreate cinder-volumes /dev/sdX
  • 情况二:现有磁盘创建新分区
$ lsblk # 查看磁盘分区情况,可选操作
$ fdisk /dev/sdXY #X表示磁盘号,Y代表X盘中的分区号
> n
> #输入磁盘序号(阿拉伯数字)
> #默认将所有剩余分区利用,按两下回车
> w # 保存分区数据

$ vgcreate cinder-volumes /dev/sdXY

14、基础环境安装

$ kolla-ansible -i ./all-in-one bootstrap-servers

15、环境检测

$ kolla-ansible -i ./all-in-one prechecks

环境检测如果报错需配置all-in-one文件

$ vi ~/all-in-one

[deployment]
localhost       ansible_connection=local  ansible_python_interpreter="{{ ansible_playbook_python }}"

16、开始部署

$ kolla-ansible -i ./all-in-one deploy

17、安装客户端

$ pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master

18、生成clouds.yaml文件

$ kolla-ansible post-deploy

三、创建公网

目的:为虚拟机访问Internet以及SSH连接提供入口。如果公网配置得当,虚拟机将可以被SSH远程连接以及访问Internet。

  1. 登录admin用户,菜单栏“管理员” -> “网络”选项 -> 单机"创建网络"按钮
    在这里插入图片描述
  2. “创建网络”对话框中,注意“选择供应商网络类型”和“物理网络”
    在这里插入图片描述
    选择供应商网络类型:Flat
    物理网络:physnet1
    外部网络:True(请勾选)
cat /etc/kolla/neutron-server

[ml2_type_flat]
flat_networks = physnet1 #物理网络所填写的名称与此处一致
  1. 配置公网IP
    在这里插入图片描述
    说明:所设置的IP需要与外网网卡所对应的IP范围一直。
  2. 设置DHCP分配范围
    在这里插入图片描述
    说明:192.168.179.3,192.168.179.20表示3-20都被DHCP分配

参考文档

  1. 一文通关物理机Ubuntu22.04融合部署OpenStack(适用虚拟机)
  2. 【OpenStack】Ubuntu22.04部署OpenStack-zed all-in-one
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值