前言
因为博主笔记本是amd的,就最近搞了个小主机,就想装个云平台玩玩,搞了三四天才正儿八经弄完,摸了一大堆错误出来,在文章前面我会将这些需要注意的点列举出来。
环境
物理环境:
i5 12450H
32G内存
无线网卡、以太网口各一个
2T SSD、500G HHD
软件环境:
OpenStack-Yoga-allinone部署Ubuntu22.04.3
安装前注意点
1、需要有一个网卡需要是空闲并且没有ip的状态,否则会出现错误
在博主环境中,主机用无线网卡联网,用贝锐的向日葵做了大二层隧道进行远程,使用以太网卡作为“外部接口”
你要是网口多那当我没说
2、需要有空闲物理卷能够创建卷组,或者能修改卷组名亦可
3、千万不要自己装ovs等软件,会报错,因为ovs服务直接跑在docker里了
4、全局文件/etc/kolla/globals.yml,需要根据你的信息进行调整网卡、ip等
5、docker镜像一定要按照步骤换源,不然会非常非常慢
安装部署的时间比较久,大部分时间都在下载docker镜像与重启container
6、不要全部大块复制粘贴,有些是需要自定义的
7、要是想安装另外版本的OpenStack,只要重新对OpenStack源和docker镜像源进行配置,再下载即可
8、有报错记得留言
Yoga版本
#安装软件
apt update
apt install git python3-dev libffi-dev gcc libssl-dev
#使用venv作为虚拟环境工具
apt install python3-venv
#创建虚拟环境路径,也可以自定路径
mkdir /path && mkdir /path/to
python3 -m venv /path/to/venv
#切换到虚拟环境
source /path/to/venv/bin/activate
#换源与安装OpenStack
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install 'ansible>=4,<6'
pip install git+https://opendev.org/openstack/kolla-ansible@stable/yoga
pip install git+https://jihulab.com/james-curtis/kolla-ansible@stable/yoga
mkdir -p /etc/kolla
chown $USER:$USER /etc/kolla
#注意自定路径
cp -r /path/to/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
cp /path/to/venv/share/kolla-ansible/ansible/inventory/* .
#playbook的缩进比较难搞,所以直接vim手动换吧
vim /path/to/venv/share/kolla-ansible/requirements.yml
换成https://jihulab.com/james-curtis/ansible-collection-kolla
#安装kolla-ansible依赖
kolla-ansible install-deps
#配置ansible默认文件
mkdir /etc/ansible
echo "[defaults]
host_key_checking=False
pipelining=True
forks=100" > /etc/ansible/ansible.cfg
#因为采用了allinone安装
#添加localhost ansible_python_interpreter=python到all-in-one的开头
sed '1i localhost ansible_python_interpreter=python' /path/to/venv/share/kolla-ansible/ansible/inventory/all-in-one
#配置全局文件,需要根据你的信息进行调整
echo '
#基础配置:
kolla_base_distro: ubuntu #系统配置,修改为ubuntu即可
openstack_release: yoga #openstack版本
kolla_internal_vip_address: "172.16.2.153" #使用内部网卡的ip,如果HA选项选择yes,则可以采用单独ip
network_interface: oray_vnc #内部网卡名称
neutron_external_interface: enp3s0 #外部网卡名称,此网卡需要up并且没有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: "kvm" #虚拟化类型(物理机用kvm,VMWare使用qemu)
nova_console: "spice"
' > /etc/kolla/globals.yml
#配置密码,并录入密码文件
kolla-genpwd
sed -i 's/^keystone_admin_password.*/keystone_admin_password: 自定义密码/' /etc/kolla/passwords.yml
#给docker换源,不然下载会很慢
sed -i.bak 's/#docker_registry:/docker_registry: quay.nju.edu.cn/g' /etc/kolla/globals.yml
#配置存储,需要一个名字叫做cinder-volumes的卷组
#具体分区可以自由fdisk,我是将整块sda都分出去了
mkfs.ext4 /dev/sda
pvcreate /dev/sda
vgcreate cinder-volumes /dev/sda
cd /path/to/venv/share/kolla-ansible/ansible/inventory/
#基础环境安装
kolla-ansible -i ./all-in-one bootstrap-servers
#检查
kolla-ansible -i ./all-in-one prechecks
#开始部署,会花费很久,特别是如果你的网络很差还没有换源
kolla-ansible -i ./all-in-one deploy
#安装完成
验证
网页登录network_interface的ip——我前面global文件中写的是172.16.2.153,这里网址就是172.16.2.153
账户admin
密码前面自定义的密码