Ubuntu22.04部署OpenStack-zed all-in-one

一.环境准备
本文以VMWare中创建的虚拟机为例

硬件    规格    备注
网卡1        已分配内网IP,以ens33为例
网卡2        不需要分配IP,以ens37为例
系统盘    60G+    用于安装系统及挂载存储
数据盘    100G+    初始不需要分区,后续操作用
二.开启ROOT远程登录
使用现有账号登录设置root密码:
sudo passwd root
1
修改sshd配置开启远程登录:
sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
systemctl restart sshd
1
2
3
三.常用工具
工具名称    用途
gparted    带图形化界面的分区工具
fdisk    命令行分区管理工具
net-tools    网络工具(使用ifconfig需要安装此包)
四.安装OpenStack
注:本次安装基于OpenStack官方文档,并且对遇到的安装问题进行补充。
点击此处查看官方文档
1.基础工具安装
# 安装python工具等
apt install git python3-dev libffi-dev gcc libssl-dev -y
1
2
2.安装并创建虚拟环境
虚拟环境路径可自定义,本文以"/opt/openstack/venv"为例。

# 安装虚拟环境包
apt install python3-venv -y
# 创建虚拟环境
python3 -m venv /opt/openstack/venv
1
2
3
4
3.进入虚拟环境
source /opt/openstack/venv/bin/activate
1
注:后续操作都在虚拟环境下进行,如果要退出虚拟环境请使用一下命令

deactivate
1
4.升级pip并配置国内源
本地安装建议使用清华源,比阿里的源速度快N倍。

# pip3临时使用清华源更新pip
pip3 install -U pip -i https://pypi.tuna.tsinghua.edu.cn/simple
# pip设置清华源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
1
2
3
4
5.安装ansible
pip install 'ansible>=4,<6'
1
6.安装对应openstack版本的kolla-ansible
pip install git+https://opendev.org/openstack/kolla-ansible@stable/zed
1
7.创建配置文件目录并附加权限
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
1
2
8.复制配置文件
# 复制配置文件到配置文件目录
cp -r /opt/openstack/venv/share/kolla-ansible/etc_examples/kolla/* /etc/kolla
1
2
9.复制依赖文件到当前目录
cp /opt/openstack/venv/share/kolla-ansible/ansible/inventory/all-in-one .
1
10.安装ansible依赖
kolla-ansible install-deps
1
11.生成密码到/etc/kolla/passwords.yml文件中
注:要配置的密码有很多,可以手动编辑文件进行配置,也可以执行下面命令自动生成。

 kolla-genpwd
1
12.修改/etc/kolla/passwords.yml中登录密码
找到文件中key控制台登录密码的key:keystone_admin_password
或者直接使用命令替换

sed -i 's/^keystone_admin_password.*/keystone_admin_password: 自定义密码/' /etc/kolla/passwords.yml
1
13.修改/etc/kolla/globals.yml文件,配置并开启服务
# 基础配置:
kolla_base_distro:          系统配置,修改为ubuntu即可
openstack_release:          openstack版本,本文使用的zed
kolla_internal_vip_address: 用来访问web控制台,
                            如果enable_haproxy为no则配置一个单独的IP,
                            否则使用network_interface网卡分配的IP
network_interface:          内部网卡名称,本文是ens33
neutron_external_interface: 外部网卡名称,本文是ens37
# 服务组件配置:
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"

14.cinder存储配置
# a.查看存储节点的盘:
ansible -i all-in-one "storage*" -a "lsblk"
# b.格式化并且创建分区组
mkfs.ext4   /dev/sdb
pvcreate    /dev/sdb
vgcreate  cinder-volumes  /dev/sdb

15.预配置
# 基础环境安装,比如docker等
kolla-ansible -i ./all-in-one bootstrap-servers
1
2
16.环境检测
kolla-ansible -i ./all-in-one prechecks
1
注意:如果检测在Checking docker SDK报错找不到docker模块的话,修改all-in-one文件内容如下。

[deployment]
localhost       ansible_connection=local  ansible_python_interpreter="{{ ansible_playbook_python }}"
1
2
17.开始部署
kolla-ansible -i ./all-in-one deploy
1
18.安装客户端
pip install python-openstackclient -c https://releases.openstack.org/constraints/upper/master
1
19.生成clouds.yaml文件
kolla-ansible post-deploy
1
20.访问web管理页面
http://kolla_internal_vip_address配置的ip/
用户名:admin
密码:/etc/kolla/passwords.yml中keystone_admin_password的密码


一.修改web管理页面端口
1.修改horizon端口并重启服务
cd /etc/kolla/horizon

vim horizon.conf
# 修改内容如下
Listen ip:80 => Listen ip:想要使用的端口
<VirtualHost ip:80> => <VirtualHost ip:想要使用的端口>
# 修改完后保存horizon.conf文件

vim local_settings
# 搜索80
/80
# 会看到如下节点
'http': {
        'name': 'HTTP',
        'ip_protocol': 'tcp',
        'from_port': '80',
        'to_port': '80',
    },
# 修改from_port和to_port为想要使用的端口
'http': {
        'name': 'HTTP',
        'ip_protocol': 'tcp',
        'from_port': '想要使用的端口',
        'to_port': '想要使用的端口',
    },
# 修改完保存local_settings文件

# docker重启horizon服务
docker stop  horizon
docker start horizon


2.修改haproxy代理的horizon端口并重启服务
cd /etc/kolla/haproxy/services.d/

vim horizon.cfg
# 修改horizon_front和horizon_back中的80为想要使用的端口

# docker重启haproxy服务
docker stop  haproxy
docker start haproxy
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mybatis查询in的字段过多不走索引

mybatis查询in的字段有索引&#xff0c;比如说是主键查询&#xff0c; 但是in的字段过多导致索引失效&#xff0c; 这个时候可以考虑将in的数量变少&#xff0c; 200以内都可以&#xff0c; 在数据库方面采用 foreach unionall 的方式将数据集合查询出来 Service层: List<…

jenkins 日志输出显示时间戳的方式

网上很多方式比较片面&#xff0c;最新版插件直接使用即可无需更多操作。 使用方式如下&#xff1a; 1.安装插件 Timestamper 2.更新全局设置 系统设置-找到 Timestamper 勾选 Enabled for all Pipeline builds 也可修改时间戳格式。 帮助信息中显示 When checked, timesta…

马原——5.两大总特征(辩证法)

两大总特征是解释了世界是怎样存在的。 三大规律是对两大总特征的进一步细化 对立统一规律解释了世界是怎样联系的&#xff0c;为什么发展 量变质变规律解释了怎样发展 否定之否定规律那里发展 五对基本范畴解释了联系和发展环节上的逻辑 客观性&#xff1a;不以人的意志为转…

使用easyExcel导入导出Date类型的转换问题

起因&#xff1a;在业务需求上需要将Excel表中的日期导入&#xff0c;存储到数据库中&#xff0c;但是entity中的日期类型使用Date来接收&#xff0c;这样导致时间精确到秒。这时&#xff0c;即使使用DateTimeFormat("yyyy-MM-dd")也无法成功转换&#xff0c;会报如下…

前端面试:【前端工程化】CommonJS 与 ES6 模块

嗨&#xff0c;亲爱的前端开发者&#xff01;在现代Web开发中&#xff0c;模块化是构建可维护和可扩展应用程序的关键。本文将深入探讨两种主要的JavaScript模块系统&#xff1a;CommonJS 和 ES6 模块&#xff0c;以帮助你了解它们的工作原理、用法以及如何选择合适的模块系统。…

SpringBoot案例-配置文件-@ConfigurationProperties

问题分析 在往期的配置参数的文章中&#xff0c;对于阿里云OSS的参数时设置在yml配置文件中&#xff0c;然后使用Value&#xff08;”${}“&#xff09;对参数进行赋值&#xff0c;具体如下&#xff1a; 此种方法比较繁琐 问题解决 使用注解 Data 为变量自动生成get/set方…

2023国赛数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

MyBatis进阶:告别SQL注入!MyBatis分页与特殊字符的正确使用方式

目录 引言 一、使用正确的方式实现分页 1.1.什么是分页 1.2.MyBatis中的分页实现方式 1.3.避免SQL注入的技巧 二、特殊字符的正确使用方式 2.1.什么是特殊字符 2.2.特殊字符在SQL查询中的作用 2.3.如何避免特殊字符引起的问题 2.3.1.使用CDATA区段 2.3.2.使用实体引…

怎么做出老板看得懂的财务数据分析报表?

财务数据分析报表的主要作用就是为决策提供必不可少的数据信息&#xff0c;让老板以及管理层在充分了解企业现金流情况、债务能力、还债能力、进账情况等财务信息后&#xff0c;更科学地做出运营管理决策。因此&#xff0c;财务数据分析报表必须做得直观易懂&#xff0c;毕竟不…

Qt与电脑管家3

1.ui页面设计技巧 最外面的widget&#xff1a; 上下左右的margin都置相同的值 这里有4个widget&#xff0c;做好一个后&#xff0c;后面3个可以直接复制.ui文件&#xff0c;然后进行微调即可。 2.现阶段实现的效果&#xff1a; 3.程序结构&#xff1a; btn1--->btn btn1---…

【第三阶段】kotlin语言的内置函数takeif

package Stage3fun main() {println(checkPermission("root","123")) }//检查校验 //username.takeif{true/false} true:返回username本身 false:返回nullfun checkPermission(userame:String,pwd:String):String{return userame.takeIf { permissionSy…

Scene Builder中设置首选版本

我目前在用的Scene Builder是Java19版本编译的&#xff0c;但是我使用的jfx是17.0.7版本&#xff0c;所以在使用Scene Builder修改窗体文件时&#xff0c;在IDEA中reload后自动将文件改为Java19版本&#xff0c;同时告警时遇到了一个问题&#xff0c;它一直在覆盖JavaFX版本到1…

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】 1、前言2、实验环境3、自我总结&#xff08;1&#xff09;文件的编写&#xff08;2&#xff09;信号与槽的新理解&#xff08;3&#xff09;线程数据的传递 4、移植步骤第一步&#xff1a;添加新文…

4、Spring_IOC注解开发

IOC 注解开发 版本了解 2.0版本时开始支持注解开发&#xff08;2.0之前就是昨天学习的纯 xml 操作&#xff09;2.5版本才完善3.0版本支持纯注解开发 1.注解&xml配置Bean 1.1配置用户mapper 配置 mapper public interface UserMapper {void save(); }配置 mapper 实现类…

1.文章复现《热电联产系统在区域综合能源系统中的定容选址研究》(附matlab程序)

0.代码链接 文章复现《热电联产系统在区域综合能源系统中的定容选址研究》&#xff08;matlab程序&#xff09;-Matlab文档类资源-CSDN文库 1.简述 本文采用遗传算法的方式进行了下述文章的复现并采用电-热节点的方式进行了潮流计算以降低电网的网络损耗 分析了电网的基本数…

如何更高效的写出更健全的代码,一篇文章教会你如何拥有一个良好的代码风格

前言&#xff1a;在平常的写代码的过程中&#xff0c;或多或少的遇到很多奇怪的 bug &#xff0c;尤其是一些大的程序&#xff0c;明明上一部分都是好好的&#xff0c;写下一块的时候突然多几百个 bug 的情况&#xff0c;然后这一块写完了后编译的时候直接傻眼了&#xff0c;看…

8、Vue 核心技术与实战 智慧商城项目 DAY8~10

1、 项目演示 2、 项目收获 3、 创建项目 4、调整初始化目录 1、删掉&#xff08;1&#xff09;assets中的文件&#xff08;2&#xff09;components中的文件&#xff08;3&#xff09;views中的文件2、(1)修改路由配置&#xff0c;默认的路由是个空数组即可&#xff0c;把路由…

【官方中文文档】Mybatis-Spring #使用 Spring Batch

使用 Spring Batch MyBatis-Spring 1.1.0 发布以后&#xff0c;提供了三个 bean 以供构建 Spring Batch 应用程序&#xff1a;MyBatisPagingItemReader、MyBatisCursorItemReader 和 MyBatisBatchItemWriter。 而在 2.0.0 中&#xff0c;还提供了三个建造器&#xff08;builde…

SqlServer2019—解决SQL Server 无法连接127.0.0.1的问题

1、打开SQL Server 2019配置管理器 2、SQL Servere 网络配置(启用 Named Pipes 和 TCP/IP) 3、修改TCP/IP协议(右键选择属性—IP地址)&#xff0c;具体如下图所示&#xff1a; 4、重启SQL Server服务

【瑞吉外卖】所遇问题及解决方法

太菜了实习之余瑞吉外卖补充一下基础知识&#xff08;&#xff0c;不然真啥也不会了。 请输入正确的手机号&#xff01; 是因为我测试了我的手机号&#xff0c;爆红&#xff0c;以为方法有错。但其实是前端代码检查手机号是否符合规范的语句有点&#xff08;&#xff09;啊啊…