基础环境

服务器环境:

  • ubuntu 2204 server(全新安装)
  • 双硬盘,sda(系统)、sdb
  • 双网卡:

enp2s0f0 :192.168.3.10 (dhcp)
enp2s0f1 :开启,关闭dhcp,无IP地址

注意

1. 安装注意

看官方教程就好,kolla默认不支持老的系统
官方安装手册

2. 配置注意

不需要持久化实例内容,在下面的文件中可以关闭cinder服务,在下面的步骤一种也就不用创建vg了

enable_cinder="no"
enable_cinder_backup: "no"
enable_cinder_backend_lvm: "no"

步骤

1. 创建VG

sdb硬盘已经分区

pvcreate /dev/sdb1
vgcreate cinder-volumes /dev/sdb1
vgs

在这里插入图片描述

2. 安装依赖

apt install python3-dev libffi-dev gcc libssl-dev python3-venv

后续安装依赖包的时候可能编译报错,需要安装:

apt install libglib2.0-dev libdbus-1-dev libdbus-glib-1-dev

3. 创建一个虚拟环境

mkdir kolla
cd kolla 
python3 -m venv venv
source venv/bin/activate

4. 配置基础安装环境

4.1 docker代理

docker还没有安装,可以先配置

mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/proxy.conf

配置文件

[Service]
Environment="HTTP_PROXY=http://192.168.3.2:10811"
Environment="HTTPS_PROXY=http://192.168.3.2:10811"
Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

无需重启,毕竟还没装docker

4.2 git代理

git config --global http.proxy http://192.168.3.2:10811
git config --global https.proxy http://192.168.3.2:10811

4.3 pypi清华源

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

4.安装kolla-ansible

注意版本,优先选择最新的稳定版

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

5.创建执行目录和配置文件

mkdir /etc/kolla
cp -r venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp venv/share/kolla-ansible/ansible/inventory/* .

6.修改配置文件

不用配置openstack_release,pip的版本已经设定了,enp2s0f0是远程ssh上来的端口(3.10),enp2s0f1是另一个端口

vim /etc/kolla/globals.yml
kolla_base_distro: "ubuntu"
openstack_release: "2024.2"

kolla_internal_vip_address: "192.168.3.200"
network_interface: "enp2s0f0"
neutron_external_interface: "enp2s0f1"
neutron_plugin_agent: "openvswitch"

enable_cinder: "yes"
enable_cinder_backup: "yes"
enable_cinder_backend_lvm: "yes"

7.配置ansible

mkdir /etc/ansible
vim /etc/ansible/ansible.cfg
[defaults]
host_key_checking=False
pipelining=True
forks=100

8.生成服务密码

kolla-genpwd

密码将被写到/etc/kolla/passwords.yml文件中

9.安装依赖

kolla-ansible install-deps

10.安装

初始化环境
安装前检查
拉取镜像
部署
验证

kolla-ansible bootstrap-servers -i ./all-in-one 
kolla-ansible prechecks -i ./all-in-one 
kolla-ansible pull -i ./all-in-one 
kolla-ansible deploy -i ./all-in-one 
kolla-ansible post-deploy -i ./all-in-one 

初始化和检查的时候可能安装docker,需要配置代理

export http_proxy http://192.168.3.2:10811
export https_proxy http://192.168.3.2:10811

使用

部署之后,基础镜像、网络等等都没有,需要自行创建。

1. 登录

注意,web登录请使用global.yaml文件中所配置的IP,即192.168.3.200,不要使用原先的192.168.3.10。admin账户密码查询:

grep keystone_admin_password /etc/kolla/passwords.yml

2. 虚拟机使用物理机网络

需求:虚拟机使用物理机网络,并访问互联网;外部机器能够访问到虚拟机

openstack network create --external --provider-network-type flat --provider-physical-network physnet1 public
openstack subnet create --network public --subnet-range 192.168.3.0/24 --allocation-pool start=192.168.3.50,end=192.168.3.100 --gateway 192.168.3.1 public-subnet

192.168.3.1/24是我的物理机网络
第一行命令中physnet1 这个名称,确认方法是在

/etc/kolla/neutron-server/ml2_conf.ini

文件中flat_networks字段

之后虚拟机使用public网络就能直接获取到物理网络IP,没有fix_ip

3. 修改镜像大小限制

通过数据库连接的方式修改镜像大小限制是行不通的,因为数据库中没有这几个字段,命令行创建这几个字段,就好

openstack registered limit create --service glance --default-limit 204800 --region RegionOne image_size_total
openstack registered limit create --service glance --default-limit 1000 --region RegionOne image_stage_total
openstack registered limit create --service glance --default-limit 200 --region RegionOne image_count_total
openstack registered limit create --service glance --default-limit 100 --region RegionOne image_count_uploading

4.重启之后,无法连接ssh的问题

最开始enp2s0f1网卡dhcp关闭是通过配置文件/etc/netplan/50-cloud-init.yaml完成的,但是Ubuntu Server默认由 cloud-init 管理网络配置,cloud-init 会在每次系统启动时,根据它自己的配置自动生成,覆盖原有文件,导致之前的配置修改被丢弃。

禁用 cloud-init 管理网络配置:

echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak
cp /etc/netplan/50-cloud-init.yaml.bak /etc/netplan/01-netcfg.yaml

5.修改额配

查看当前额配

openstack quota show

修改额配

openstack quota set --instances 100 --cores 200 --routers 100  --volumes 100  --secgroups 100  --ram 204800 admin

6. 无法创建虚拟机

系统磁盘大小,虚拟机无法创建,下面的命令把lvm拉满

lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv

或者指定到4T

lvextend -L 4T /dev/ubuntu-vg/ubuntu-lv
resize2fs /dev/ubuntu-vg/ubuntu-lv
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐