通过kolla-ansible单机部署all-in-one
基础环境
服务器环境:
- 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
更多推荐
所有评论(0)