最简单的OpenStack部署

news/2024/7/18 12:19:25 标签: openstack

环境准备

你需要准备一个很干净的ubuntu22,all-in-one部署
最低环境要求:CPU 4core, RAM 12G, disk 20G+30G, 两个网口(ens3,ens6)
这里的环境只适合部署核心服务,若要部署更多的服务,资源要求水涨船高
disk 20G是系统盘
disk 30G是cinder块存储所需的pv,假设为/dev/vdb
ens3是你的管理口,也作为内部网络网口,ens6是你的提供者网络(外部网络)的网口

开始安装

安装依赖工具

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

安装Python虚拟环境

apt install python3-venv

创建虚拟环境

python3 -m venv /opt/myenv
source /opt/myenv/bin/activate

保证pip最新

pip install -U pip -i https://pypi.douban.com/simple

安装ansible

pip install 'ansible>=4,<6' -i https://pypi.douban.com/simple

安装kolla-ansible

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

准备kolla的配置目录

mkdir /etc/kolla
cp -r /opt/myenv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/

准备ansible清单

mkdir /root/deploy
cd $_
cp /opt/myenv/share/kolla-ansible/ansible/inventory/* .  # copy all-in-one和multinode两个清单

编辑清单

vim all-in-one # 将localhost ansible_python_interpreter=python放在第一行

安装galaxy依赖

kolla-ansible install-deps 

配置ansible

mkdir /etc/ansible
cat > /etc/ansible/ansible.cfg << EOF
[defaults]
host_key_checking=False
pipeline=True
forks=100
EOF

测试一下ansible

ansible -i all-in-one all -m ping

生成密码

vim /etc/kolla/passwords.yml
kolla-genpwd  # 生成密码

最重要的来了,编辑globals.yml

vim /etc/kolla/globals.yml  # 看看一些配置,并修改默认值
cat /etc/kolla/globals.yml | grep -v '^#' | grep -v '^$'  # 看看我们都配置了什么
---
workaround_ansible_issue_8743: yes
kolla_base_distro: "ubuntu"
kolla_internal_vip_address: "192.168.5.27"
network_interface: "ens3"
neutron_external_interface: "ens6"
enable_haproxy: "no"
enable_cinder: "yes"
enable_cinder_backend_lvm: "yes"  # 由此可知我们使用LVM作为块存储
nova_compute_virt_type: "qemu"  # 在虚拟机上部署时,需要将默认值kvm改为qemu

创建卷组,用于cinder

vgcreate cinder-volumes /dev/vdb

kolla-ansible开始部署openstack

kolla-ansible -i all-in-one bootstrap-servers  # 引导服务器
kolla-ansible -i all-in-one prechecks  # 部署前检查,有错误解决错误
kolla-ansible -i all-in-one deploy  # 部署

安装OpenStack客户端

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

收尾

kolla-ansible post-deploy  # 创建/etc/kolla/clouds.yaml
cp /etc/kolla/clouds.yaml /etc/openstack/

结果验证

使用浏览器登录你的IP,如192.168.5.27
使用clouds.yaml中的kolla-admin用户名和密码即可登录
外部网络使用flat类型,对应br-ex的名称是physnet1 #可通过docker exec -it neutron_openvswitch_agent /bin/bash -c "cat /etc/neutron/plugins/ml2/openvswitch_agent.ini"查看到


http://www.niftyadmin.cn/n/232967.html

相关文章

JavaScript有几种数据类型,分别是什么?

在JavaScript中&#xff0c;我们可以分成两种类型&#xff1a;基本类型 复杂类型&#xff08;引用类型&#xff09; 两种类型的区别是&#xff1a;存储位置不同 基本类型主要为以下六种&#xff1a; Number、String、Boolean、Undefined、Null、Symbol 复杂类型/引用类型统称为…

Windows通过RDP异地远程桌面Ubuntu【内网穿透】

文章目录前言1. ubuntu安装XRDP2.局域网测试连接3. Ubuntu安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址前言 XRDP是一种开源工具&#xff0c;它允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP外&#xff0c;xrdp工具还接受来自其他RDP客户端(…

newman结合jenkins实现自动化测试

一、背景 为了更好的保障产品质量和提升工作效率&#xff0c;使用自动化技术来执行测试用例。 二、技术实现 三、工具安装 3.1 安装newman npm install -g newman查看newman版本安装是否成功&#xff0c;打开命令行&#xff0c;输入newman -v&#xff0c;出现 版本信息即安…

软件测试—基础篇

软件测试—基础篇&#x1f50e;软件测试的生命周期&#x1f50e;如何描述一个BUG&#x1f50e;如何定义BUG 的级别&#x1f50e;BUG 的生命周期&#x1f50e;测试的执行与管理测试的执行与管理如何发现更多的BUG&#x1f50e;产生争执怎么办&#x1f50e;结尾&#x1f50e;软件…

Java并发工具合集JUC大爆发!!!

并发工具类 通常我们所说的并发包也就是java.util.concurrent(JUC)&#xff0c;集中了Java并发的各种工具类&#xff0c; 合理地使用它们能帮忙我们快速地完成功能 。 作者: 博学谷狂野架构师GitHub&#xff1a;GitHub地址 &#xff08;有我精心准备的130本电子书PDF&#xff0…

Flutter 布局探索 | 如何分析尺寸和约束

theme: cyanosis 前言 本文来分享一下&#xff0c;通过查看源码和布局信息解决的一个实际中的布局小问题&#xff0c;也希望通过本文的分享&#xff0c;当你遇到布局问题时&#xff0c;可以靠自己的脑子和双手解决问题。 如下所示&#xff0c;将 TextField 作为 AppBar 组件的 …

雪花雪花雪花

问题 有 N 片雪花&#xff0c;每片雪花由六个角组成&#xff0c;每个角都有长度。 第 i 片雪花六个角的长度从某个角开始顺时针依次记为 ai,1,ai,2,…,ai,6a_i,_1,a_i,_2,…,a_i,_6ai​,1​,ai​,2​,…,ai​,6​。 因为雪花的形状是封闭的环形&#xff0c;所以从任何一个角…

设计模式 -- 门面模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…