Centos图形化界面封装OpenStack Ubuntu镜像

news2025/1/26 15:53:26

目录

背景

环境

 搭建kvm环境

安装ubuntu虚机

虚机设置

系统安装

登录虚机

安装cloud-init

安装cloud-utils-growpart

关闭实例

删除细节信息

删除网卡细节

使虚机脱离libvirt纳管

结束与验证

压缩与转移

验证是否能够正常运行

背景

一般的镜像文件在上传OpenStack之后也无法正常进行安装,适用于OpenStack的镜像可以通过官网进行下载,部分系统官方提供云镜像的下载,也可以通过自己根据需要虚拟化安装之后打包,这里介绍的是centos7环境下通过kvm对Ubuntu18.04版本镜像进行打包的操作。

之所以使用图形化是因为还有很多不熟悉virsh工具的兄弟,也不会使用vnc访问kvm虚机,直接使用virt-manager更为直观也更容易理解

环境

VMwareworkstation17pro
——打开VT
CentOS Linux release 7.9.2009 (Ubuntu也可以,centos8和9都可以,大差不差)
——网络NAT
——50G硬盘,自动分区
镜像版本Ubuntu18.04
bionic-mini.iso

 搭建kvm环境

#升级软件包
yum update
#安装kvm的环境
yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager

#用centos9做到一半发现centos9不支持18.04版本的安装了,很尴尬
#获取镜像,例子中使用的是一个64M的小型镜像,也可以自己下载好传到虚拟机里
wget -O /var/lib/libvirt/boot/bionic-mini.iso \
  http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso

#创建一个10G的卷文件
qemu-img create -f qcow2 /var/lib/libvirt/images/bionic.qcow2 10G

#打开virt-manager
virt-manager

安装ubuntu虚机

虚机设置

找到并选择刚刚下载的镜像

 选择内存和vCPU个数,其实这个不太有所谓

 选择刚刚创建的卷

网络选项选择默认(我是NAT)

系统安装

——使用默认设置
——设置用户密码,用户名使用ubuntu,密码随意
——分区选择单ext4根分区 或者默认LVM分区亦可
——是否自动下载随意
——在安装软件选项中,选择安装openssh,也可以安装另外在openstack中需要使用的功能

 ——选择安装grub选单

登录虚机

通过之前设置的账号密码登录

建议登录后立马改root密码,我刚两次都是装完之后输入正确密码后提示错误的

安装cloud-init

cloud-initcloud-init脚本在实例启动时启动,搜索元数据提供者以从中获取公钥,安装并将公钥放置在镜像的默认账户中,在Ubuntu中该账户就是ubuntu
它可以:
1、设置默认语⾔环境
2、设置实例主机名
3、添加 ssh keys到 .ssh/authorized_keys
4、设置⽤户密码
5、配置⽹络安装软件包

同时/var/log/cloud-init.log 会完整地记录 cloud-init 运⾏的所有细节,是 debug 最重要的⼯具。

apt install cloud-init

对cloud init进行设置

dpkg-reconfigure cloud-init

并选择EC2

通过vim /etc/cloud/cloud.cfg可以修改将密钥放在哪个user的目录下

关闭实例

su - root

/sbin/shutdown -h now

删除细节信息

删除网卡细节

#我的vm名称是ubuntu18.04
virt-sysprep -d ubuntu18.04

使虚机脱离libvirt纳管

virsh undefine ubuntu18.04

结束与验证

压缩与转移

cd /var/lib/libvirt/images/

mkdir /iso

#修改一下权限

chown root:root bionic.qcow2
virt-sparsify --compress bionic.qcow2 /iso/bionic.qcow2
#注意如果硬盘空间不足就会告警

也可以使用qemu-img convert精简置备,两个命令作用一样

qemu-img convert -c -O qcow2 bionic.qcow2 /iso/bionic.qcow2

可以看到压缩之后体积大大减少

将压缩后的bionic.qcow2拿出来上传至OpenStack

验证是否能够正常运行

glance image-create --name ubuntu-bionic --disk-format qcow2 --container-format bare --visibility public --progress < /image/bionic.qcow2

创建实例,成功登录

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

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

相关文章

计算机毕业设计 基于协同推荐的白酒销售管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

TCA9548A I2C 多路复用器 Arduino 使用相同地址 I2C 设备

在本教程中&#xff0c;我们将学习如何将 TCA9548A I2C 多路复用器与 Arduino 结合使用。我们将讨论如何通过整合硬件解决方案来使用多个具有相同地址的 Arduino 的 I2C 设备。通过使用 TCA9548A I2C 多路复用器&#xff0c;我们将能够增加 Arduino 的 I2C 地址范围&#xff0c…

前端打包添加前缀

vue2添加前缀 router的base加上前缀 export default new Router({mode: history, // 去掉url中的#base: privateDeployUrl, // 这里加上前缀scrollBehavior: () > ({y: 0}),routes: constantRoutes })vue.config.js&#xff0c;publicPath属性加上前缀 publicPath: proces…

组件化编程

hello&#xff0c;我是小索奇&#xff0c;精心制作的Vue系列持续发放&#xff0c;涵盖大量的经验和示例&#xff0c;如果对您有用&#xff0c;可以点赞收藏哈~ 组件化编程 组件是什么&#xff1f; 一句话概括就是&#xff1a;实现特定功能的模块化代码单元 vm就是大哥&#xff…

Leetcode刷题详解——乘积最大子数组

1. 题目链接&#xff1a;152. 乘积最大子数组 2. 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的非空连续子数组&#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位…

2023-12-03 LeetCode每日一题(可获得的最大点数)

2023-12-03每日一题 一、题目编号 1423. 可获得的最大点数二、题目链接 点击跳转到题目位置 三、题目描述 几张卡牌 排成一行&#xff0c;每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动&#xff0c;你可以从行的开头或者末尾拿一张卡牌&#x…

[HTB][Sherlocks] Meerkat

作为一家快速发展的初创公司&#xff0c;Forela一直在利用商业管理平台。不幸的是&#xff0c;我们的文档很少&#xff0c;而且我们的管理员也不是最有安全意识的。作为我们的新安全提供商&#xff0c;我们希望您查看我们导出的一些PCAP和日志数据&#xff0c;以确认我们是否已…

Nginx实现多虚拟主机配置

Nginx实现多虚拟主机配置 Nginx为什么要进行多虚拟主机配置呢&#xff1f;what&#xff1f; Nginx实现多虚拟主机配置的主要原因是&#xff0c;一个服务器可能会承载多个网站或应用程序&#xff0c;这些网站或应用程序需要使用不同的域名或IP地址来进行访问。如果只有一个虚拟…

代码随想录第二十二天(一刷C语言)|组合总数电话号码的字母组合

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、组合总数 思路&#xff1a;参考carl文档和视频 1、需要一维数组path来存放符合条件的结果&#xff0c;二维数组result来存放结果集。 2、targetSum 目标和&#xff0c;也就是题目中的…

Java基础-----Date类及其相关类(一)

文章目录 1. Date类1.1 简介1.2 构造方法1.3 主要方法 2. DateFormat 类2.1 简介2.2 实例化方式一&#xff1a;通过静态方法的调用2.2 实例化方式二&#xff1a;通过创建子类对象 3. Calendar类4. GregorianCalendar 1. Date类 1.1 简介 java.util.Date:表示指定的时间信息&a…

市面上的AR眼镜:优缺点分析

AR眼镜是近年来备受关注的科技产品之一。它通过将虚拟信息叠加到现实世界中&#xff0c;为用户提供全新的视觉体验。目前&#xff0c;市面上的AR眼镜主要分为两类&#xff1a;消费级AR眼镜和企业级AR眼镜。 消费级AR眼镜 消费级AR眼镜的特点是轻便、时尚、易于佩戴&#xff0…

DOM 事件的注册和移除

前端面试大全DOM 事件的注册和移除 &#x1f31f;经典真题 &#x1f31f;DOM 注册事件 HTML 元素中注册事件 DOM0 级方式注册事件 DOM2 级方式注册事件 &#x1f31f;DOM 移除事件 &#x1f31f;真题解答 &#x1f31f;总结 &#x1f31f;经典真题 总结一下 DOM 中如何…

【STM32】TIM定时器

第一部分&#xff1a;定时器基本定时的功能&#xff1b; 第二部分&#xff1a;定时器的输出比较功能&#xff1b; 第三部分&#xff1a;定时器输入捕获的功能&#xff1b; 第四部分&#xff1a;定时器的编码接口。 1 TIM简介 TIM&#xff08;Timer&#xff09;定时器&#…

计算机网络TCP篇②

一、TCP 重传、滑动窗口、流量控制、拥塞控制 1.1、重传机制 在 TCP 中&#xff0c;当发送端的数据达到接受主机时&#xff0c;接收端主机会返回一个确认应答消息&#xff0c;表示已收到消息。但是在复杂的网络中&#xff0c;并一定能顺利正常的进行数据传输&#xff0c;&…

从零开始搭建博客网站-----登陆页面

登录按钮以及背景图设置 安装element-plus和css插件 npm install element-plus --save npm install sass --save npm install sass-loader --save在main.js里引用 寻找背景图存入assets文件下&#xff0c;并且在Login.vue里设置背景图和登录按钮 设置的背景图的大小没有起…

avue-tabs设置默认选中的tab

文章目录 一、问题二、解决三、最后 一、问题 最近在用avue这个UI框架来开发页面&#xff0c;有用到avue-tabs这个tab切换组件。结果竟然发现element-ui中el-tabs的v-model在avue-tabs中竟然是没有用的&#xff0c;无法设置默认选中哪个tab。avue这个基于element-ui开发的UI框…

〖大前端 - 基础入门三大核心之JS篇㊹〗- DOM事件委托

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;不渴望力量的哈士奇(哈哥)&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

【Erlang进阶学习】2、匿名函数

受到其它一些函数式编程开发语言的影响&#xff0c;在Erlang语言中&#xff0c;将函数作为一个对象&#xff0c;赋予其“变量”的属性&#xff0c;即为我们的匿名函数 或 简称 fun&#xff0c;它具有以下特性&#xff1a; &#xff08;匿名函数&#xff1a;不是定义在Erlang模…

逻辑回归与正则化 逻辑回归、激活函数及其代价函数

逻辑回归、激活函数及其代价函数 线性回归的可行性 对分类算法&#xff0c;其输出结果y只有两种结果{0&#xff0c;1}&#xff0c;分别表示负类和正类&#xff0c;代表没有目标和有目标。 在这种情况下&#xff0c;如果用传统的方法以线性拟合 &#xff08; h θ ( x ) θ T…

Android HCI日志分析案例2

案例1--蓝牙音箱电量用完后&#xff0c;配对一直失败&#xff0c;提示PIN码不正确 基于MTK平台&#xff0c;通过MTKLogger开启保存HCI日志 问题定位分析 Android日志查看logcat 搜索到关键log 01-20 10:07:55.403760 978 1075 V bt_stack: [VERBOSE2:btm_inq.cc(2032)] …