一、基本说明
1、安装测试环境
指标 | 参数 |
---|---|
操作系统 | Ubuntu server22 |
CPU | AMD Ryzen 7 3700U 4核 |
RAM | 9GB |
SSD | 40GB |
网卡 | 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。
- 登录admin用户,菜单栏“管理员” -> “网络”选项 -> 单机"创建网络"按钮
- “创建网络”对话框中,注意“选择供应商网络类型”和“物理网络”
选择供应商网络类型:Flat
物理网络:physnet1
外部网络:True(请勾选)
cat /etc/kolla/neutron-server
[ml2_type_flat]
flat_networks = physnet1 #物理网络所填写的名称与此处一致
- 配置公网IP
说明:所设置的IP需要与外网网卡所对应的IP范围一直。 - 设置DHCP分配范围
说明:192.168.179.3,192.168.179.20表示3-20都被DHCP分配