当前位置: 首页 > news >正文

基于kolla-ansible在openEuler 22.03 SP4上部署OpenStack-2023.2

测试环境

openEuler-22.03-LTS-SP4-x86_64-dvd.iso
Virtual Box,4 vCPU, 8G RAM, 50 vDisk。安装时删除/home,SWAP分区,全部空间给/目录。
目标是部署OpenStack All-In-One模式,控制节点+计算节点+存储节点在一台机器实现。

系统配置

常用工具
dnf install -y tar git
优化SSH
vi /etc/ssh/sshd_config
UseDNS no
systemctl restart sshd
关闭selinux
sed -i ‘s#SELINUX=enforcing#SELINUX=permissive#g’ /etc/selinux/config
关闭防火墙
systemctl disable --now firewalld
systemctl stop firewalld
systemctl status firewalld
设置主机名,配置hosts文件
hostnamectl set-hostname node1
cat << EOF >> /etc/hosts
192.168.31.115 node1
EOF
设置免密登录
ssh-keygen
ssh-copy-id node1
重启系统
system reboot

安装docker

vi /etc/yum.repos.d/openEuler-docker-ce.repo

[docker-ce-stable]
name=Docker CE Stable - b a s e a r c h b a s e u r l = h t t p s : / / r e p o . h u a w e i c l o u d . c o m / d o c k e r − c e / l i n u x / c e n t o s / 8 / basearch baseurl=https://repo.huaweicloud.com/docker-ce/linux/centos/8/ basearchbaseurl=https://repo.huaweicloud.com/dockerce/linux/centos/8/basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://repo.huaweicloud.com/docker-ce/linux/centos/gpg

dnf install -y docker-ce

指定docker加速器,阿里云申请免费
mkdir -p /etc/docker
tee /etc/docker/daemon.json << ‘EOF’
{
“registry-mirrors”: [“https://xxx.mirror.aliyuncs.com”]
}
EOF

systemctl daemon-reload
#启动docker服务
systemctl start docker
systemctl enable docker
systemctl status docker

docker info
docker --version
安装Python docker模块
pip3 install docker

安装ansible

更换pip国内源,加速pip下载安装
mkdir ~/.pip
vi ~/.pip/pip.conf

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

pip3 install ansible
ansible --version
安装后的版本是ansible-8.7.0 + ansible [core 2.15.12]

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

安装kolla-ansible

安装kolla-ansible需要的依赖
dnf install -y python3-devel libffi-devel gcc openssl-devel python3-libselinux

安装kolla-ansible
kolla-ansible与OpenStack之间版本信息:https://docs.openstack.org/releasenotes/kolla-ansible/
pip3 install pbr
pip3 install kolla-ansible==17.5.0
kolla-ansible --version

从Yoga版本开始需要安装Ansible Galaxy的依赖项
kolla-ansible install-deps

部署OpenStack

创建kolla-ansible配置文件目录
mkdir /etc/kolla
chown U S E R : USER: USER:USER /etc/kolla

配置文件
cp /usr/local/share/kolla-ansible/etc_examples/kolla/globals.yml /etc/kolla/
cp /usr/local/share/kolla-ansible/etc_examples/kolla/passwords.yml /etc/kolla/
cp /usr/local/share/kolla-ansible/ansible/inventory/all-in-one /etc/kolla/

编辑all-in-one
sed -i ‘s#localhost ansible_connection=local#node1 ansible_python_interpreter=/usr/bin/python3#g’ /etc/kolla/all-in-one

生成密码
kolla-genpwd

编辑globals.yml
cat /etc/kolla/globals.yml|grep -v ^#|grep -v ^$

workaround_ansible_issue_8743: yes
kolla_base_distro: “rocky”
openstack_release: “2023.2”
openstack_tag: “2023.2-rocky-9”
node_custom_config: “/etc/kolla/config”
kolla_internal_vip_address: “192.168.31.115”
network_interface: “enp0s3”
neutron_external_interface: “enp0s8”
enable_haproxy: “no”
enable_neutron_provider_networks: “yes”
nova_compute_virt_type: “qemu”

部署安装指定版本库,避免报错。
pip3 install pyOpenSSL==24.2.1
pip3 install cryptography==42.0.0
pip3 install paramiko==3.0.0

已安装过docker,注释掉kolla自动安装docker的任务
vi /root/.ansible/collections/ansible_collections/openstack/kolla/roles/docker/defaults/ main.yml
enable_docker_repo: false

vi /root/.ansible/collections/ansible_collections/openstack/kolla/roles/docker/tasks/main.yml
#- import_tasks: install.yml

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

服务验证

安装openstack客户端
dnf install -y python3-openstackclient

source /etc/kolla/admin-openrc.sh
openstack user list
openstack endpoint list
openstack project list
openstack service list
openstack volume type list
openstack network agent list
openstack compute service list
openstack volume service list
openstack hypervisor list --long

通过浏览器登录到192.168.31.115页面验证Horizon。

部署虚机

openstack flavor create cirros --ram 1024 --vcpus 1 --disk 10
openstack security group create srGrp

openstack image create cirros-0.6.2 --disk-format qcow2 --container-format bare --public --file cirros-0.6.2-x86_64-disk.img
openstack network create oamNet --provider-network-type=vxlan
openstack subnet create oamSubnetv4 --network oamNet --subnet-range 10.16.151.0/24 --gateway 10.16.151.1 --allocation-pool start=10.16.151.5,end=10.16.151.254 --ip-version 4 --no-dhcp
openstack server create --availability-zone nova --image cirros-0.6.2 --flavor cirros --network oamNet --security-group srGrp cirros

openstack network list
openstack image list
openstack subnet list
openstack security group list
openstack server list
openstack flavor list

移除环境

如果需要移除当前的OpenStack环境,可以执行
kolla-ansible -i /etc/kolla/all-in-one destroy all --yes-i-really-really-mean-it

相关文章:

基于kolla-ansible在openEuler 22.03 SP4上部署OpenStack-2023.2

测试环境 openEuler-22.03-LTS-SP4-x86_64-dvd.iso Virtual Box&#xff0c;4 vCPU, 8G RAM, 50 vDisk。安装时删除/home&#xff0c;SWAP分区&#xff0c;全部空间给/目录。 目标是部署OpenStack All-In-One模式&#xff0c;控制节点计算节点存储节点在一台机器实现。 系统配…...

深拷贝|浅拷贝

目录 1. 深拷贝&#xff08;Deep Copy&#xff09; 2. 浅拷贝&#xff08;Shallow Copy&#xff09; 3. 深拷贝和浅拷贝的区别 4. 示例代码 浅拷贝示例 深拷贝示例 5.常用的方法 1.Java Object.clone() 方法 2.序列化与反序列化 6.Spring Boot 中的常用方法 使用 Se…...

图像处理-掩码

文章目录 一、简介二、主要用途三、代码实现四、掩码优缺点1.优点2.缺点 一、简介 在图像处理中&#xff0c;掩码&#xff08;Mask&#xff09;是一种特殊的图像&#xff0c;用于指定对原始图像进行操作的区域。掩码通常是二值图像&#xff08;即图像上的每个像素只有两个可能…...

[2025]基于微信小程序慢性呼吸系统疾病的健康管理(源码+文档+解答)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…...

react之jsx基础(1)概念和本质

文章目录 JSX 的基本概念1. **语法**2. **表达式**3. **属性**4. **子元素** JSX 的编译过程1. **转换成 JavaScript**2. **React 元素** JSX 的实际应用1. **组件定义**2. **组件嵌套** 总结 当然&#xff0c;以下是对 JSX 的详细讲解&#xff0c;包括其基本概念、语法、编译过…...

sqli-labs靶场自动化利用工具——第13关

文章目录 概要整体架构流程技术细节执行效果小结 概要 Sqli-Labs靶场对于网安专业的学生或正在学习网安的朋友来说并不陌生&#xff0c;或者说已经很熟悉。那有没有朋友想过自己开发一个测试脚本能实现自动化化测试sqli-labs呢&#xff1f;可能有些人会说不是有sqlmap&#…...

大舍传媒:尼日利亚传统新闻媒体宣传助力新兴行业蓬勃发展

大舍传媒&#xff1a;尼日利亚传统新闻媒体宣传助力新兴行业蓬勃发展 在全球化的浪潮下&#xff0c;媒体作为信息传播的重要渠道&#xff0c;对于促进行业发展和推动社会进步扮演着举足轻重的角色。特别是在非洲大陆上人口最多、经济最发达的国家——尼日利亚&#xff0c;传统…...

ISSTA 2024盛大开幕:中国学者的录取数和投稿量均位列第一

随着夏日的尾声&#xff0c;全球软件测试领域的专家和学者齐聚在奥地利维也纳。共同参与这场科技盛宴——ISSTA 2024。这场国际会议正如火如荼地进行中&#xff0c;吸引了来自世界各地的专业人士参与。 会议实况&#xff1a; 9月16日与17日&#xff0c;大会安排了丰富的社交活…...

HttpMediaTypeNotAcceptableException: No acceptable representation问题解决方法

Background org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation HttpMediaTypeNotAcceptableException: No acceptable representation 异常通常发生在Web应用程序中&#xff0c;客户端请求了一个资源&#xff0c;但是…...

Scrapy爬虫框架 Pipeline 数据传输管道

在网络数据采集领域&#xff0c;Scrapy 是一个非常强大的框架&#xff0c;而 Pipeline 是其中不可或缺的一部分。它允许我们在数据处理的最后阶段对抓取的数据进行进一步的处理&#xff0c;如清洗、存储等操作。 本教程将详细介绍如何在 Scrapy 中使用 Pipeline&#xff0c;帮…...

vim的 配置文件

vim 的配置文件名是vimrc&#xff0c;共有两个&#xff0c;一个是公共的、所有用户的vimrc&#xff0c;一个是私有的、个人的.vimrc。个人的配置文件是隐藏的&#xff0c;不进行配置的话一般是没有这个文件的&#xff0c;需要自己创建.vimrc 公共配置文件位于 :/etc/vim/vimrc…...

Golang | Leetcode Golang题解之第403题青蛙过河

题目&#xff1a; 题解&#xff1a; func canCross(stones []int) bool {n : len(stones)dp : make([][]bool, n)for i : range dp {dp[i] make([]bool, n)}dp[0][0] truefor i : 1; i < n; i {if stones[i]-stones[i-1] > i {return false}}for i : 1; i < n; i {…...

前端项目使用js将dom生成图片、PDF

在进行下方操作前&#xff0c;请你先安装 html2canvas 和 jspdf 包。 1、使用html2canvas将dom元素生成图片 // 获取要转换的dom const ele document.getElementById("dom"); // 生成canvas对象 let canvas await html2canvas(ele); 2、生成PDF对象&#xff0c;将…...

在 Red Hat 上安装 SQL Server 2022 并创建数据库

适用于&#xff1a; SQL Server - Linux 本快速入门介绍如何在 Red Hat Enterprise Linux (RHEL) 8.x 或 9.x 上安装 SQL Server 2022 (16.x)。然后可以使用 sqlcmd 进行连接&#xff0c;创建第一个数据库并运行查询。 注意&#xff1a;本教程需要用户输入和 Internet 连接。 …...

游戏如何应对云手机刷量问题

云手机的实现原理是依托公有云和 ARM 虚拟化技术&#xff0c;为用户在云端提供一个安卓实例&#xff0c;用户可以将手机上的应用上传至云端&#xff0c;再通过视频流的方式&#xff0c;远程实时控制云手机。 市面上常见的几款云手机 原本需要手机提供的计算、存储等能力都改由…...

QTableView使用QSortFilterProxyModel后行号错乱

在Qt中&#xff0c;当你使用QSortFilterProxyModel对QTableView进行排序或过滤后&#xff0c;点击事件可能会返回一个不正确的行号&#xff0c;因为代理模型可能会改变数据的显示顺序。为了获取点击数据的真实行号和内容&#xff0c;你可以使用mapToSource()函数&#xff0c;它…...

【Python】 报错Can‘t find model ‘en_core_web_md‘

出现这种错误表明Python环境中找不到名为en_core_web_md的模型。这通常发生在使用spaCy库进行自然语言处理时&#xff0c;因为spaCy依赖于预先训练好的模型来进行词性标注、依赖分析、命名实体识别等任务。如果没有安装该模型&#xff0c;尝试加载它时会导致错误。 解决办法&a…...

每天五分钟深度学习框架pytorch:pytorch中已经定义好的损失函数

本文重点 前面我们学习了pytorch中两种模式的损失函数,一种是nn,另外一种是functional,本文将讲解pytorch中已经封装好的损失函数。其实nn的方式就是类,而functional的方式就是方法。nn中使用的也是functional。 损失函数中的参数 无论是nn还是functional,大多数的损失函…...

dedecms(四种webshell姿势)、aspcms webshell漏洞复现

一、aspcms webshell 1、登陆后台&#xff0c;在扩展功能的幻灯片设置模块&#xff0c;点击保存进行抓包查看 2、在slideTextStatus写入asp一句话木马 1%25><%25Eval(Request(chr(65)))%25><%25 密码是a&#xff0c;放行&#xff0c;修改成功 3、使用菜刀工具连…...

【STM32系统】基于STM32设计的智能垃圾桶(语音、颜色识别、称重、光强、烟雾、人体识别、步进电机、水泵)——文末资料下载

基于STM32设计的智能垃圾桶 演示视频: 基于STM32设计的智能垃圾桶 功能简介: 四个按键可分别打开四个垃圾桶(可回收垃圾、厨余垃圾、有害垃圾、其他垃圾) oled显示屏显示四个垃圾桶的打开/关闭状态、烟雾浓度、光照强度、称重的重量和识别到的颜色(白色、红色、绿色、蓝…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

SpringTask-03.入门案例

一.入门案例 启动类&#xff1a; package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...