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

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

目录

背景

环境

宿主机环境安装

创建与安装Centos7.8虚机

虚机设置 

安全相关

安装ACPI服务

安装cloud-init

安装cloud-utils-growpart

停⽌虚拟机

删除个性化信息

模板化与压缩

登录与验证


背景

今天早上在Centos官网下载的CentOS-7-aarch64-GenericCloud-2003.qcow2疑似没法用于在博主的yoga版本OpenStack,想着自己做一个得了

一般的镜像文件在上传OpenStack之后也无法正常进行安装,有官方提供云镜像的下载会限定OpenStack版本,可能出现无法兼容的情况,也可以通过自己根据需要虚拟化安装之后打包,这里介绍的是centos9-stream环境下通过kvm对Centos7.8版本镜像进行打包的操作。

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

环境

VMwareworkstation 17 Pro(打开VT)
CentOS Stream release 9
——网络NAT,用以管理
——100G硬盘,不要太小就行随意
——4G内存4Core,随意
镜像:
CentOS-7-x86_64-DVD-2003.iso

宿主机环境安装

#我这是个刚安装的stream系统,相当于从零开始了
#安装kvm的环境
yum update
yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img libvirt virt-manager#一些安全方面的设置
sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
systemctl restart sshd
systemctl disable firewalld.service --now
sed -i 's/^SELINUX=.*/SELINUX=disable/' /etc/selinux/config
setenforce 0#libvirtd守护进程默认没有启动会报错,将其启动
systemctl enable libvirtd --now#获取镜像,我使用的是CentOS-7-x86_64-DVD-2003.iso,也就是Centos7.8的镜像,上传到根目录下#正经封装时候可以选择minimal镜像,体积比较小#打开virt-manager
virt-manager

创建与安装Centos7.8虚机


设置内存4G、CPU 4core、硬盘10G 博主刚刚用2G内存直接卡住了,所以设大了点,你们操作中如果用的是minimal的iso可以设小点

网络默认NAT即可,直接开装

安装Centos7.8虚机
——英文
——时区上海
——minimal安装
——内核捕捉KDUMP随意
——打开网络
——主机名自定义成centos7.8-template

——手动分区,使用标准分区 如图所示swap分2G,boot分2G,根目录分6G

虚机设置 

#看下能不能连上网
#我这个镜像直接就有yum源了,不需要再修改repo,意思一下
yum repolist
yum makecache

安全相关

systemctl disable firewalld.service --now

sed -i 's/^SELINUX=.*/SELINUX=disable/' /etc/selinux/config

setenforce 0

安装ACPI服务

#用于控制重启和关闭实例

yum install -y acpid

systemctl enable acpid --now

安装cloud-init

yum install -y cloud-init

systemctl enable cloud-init

安装cloud-utils-growpart

#允许分区调整

yum -y install cloud-utils-growpart

停⽌虚拟机

init 0

删除个性化信息

#宿主机安装工具
yum install -y libguestfs-tools
yum install -y guestfs-tools#使用virt-sysprep删除bash-history
#我的VM名就是centos7.8,所以用的是centos7.8
virt-sysprep -d centos7.8
virt-sysprep --enable bash-history -d centos7.8#释放虚拟机,脱离virsh纳管
virsh undefine centos7.8

模板化与压缩

释放后磁盘位置在/var/lib/libvirt/images/

#精简置备磁盘
mkdir /iso
qemu-img convert -c -O qcow2 /var/lib/libvirt/images/centos7.8.qcow2 /iso/centos7.8.qcow2

#压缩前11G,压缩后880M

登录与验证

拷⻉镜像到openstack环境
glance image-create --name centos7.8-template --disk-format qcow2 --container-format bare --visibility public --progress < /image/openstack/centos7.8.qcow2

创建实例时,可以使用cloud-init脚本,对实例的账号密码,域名等进行修改

lsblk
可以看到boot和swap都还是2G,根分区随着我实例给了它30G,动态增大到了26G

同时,fs文件系统也动态变大了

相关文章:

  • Django 模型基础(五)
  • 奇迹mu 架设过程中可能会出现的问题及解决办法
  • Excel 数据处理记录
  • LeetCode 1038. 从二叉搜索树到更大和树:(反)中序遍历
  • C语言面试之旅:掌握基础,探索深度(面试实战之c语言关键词中篇)
  • 软件分享--智能照片识别分类软件
  • 【Java进阶】-- 设计模式
  • 572 - Oil Deposits (UVA)
  • Linux下设置redis临时密码和长期密码
  • python用YOLOv8对图片进行分类
  • springboot统一异常处理
  • Hana Studio打开BW失败
  • 基于Springboot的秒杀系统(有报告)。Javaee项目,springboot项目。
  • git常用命令小记
  • 软件工程导论学习资料
  • Google 是如何开发 Web 框架的
  • Debian下无root权限使用Python访问Oracle
  • java小心机(3)| 浅析finalize()
  • java中具有继承关系的类及其对象初始化顺序
  • jquery cookie
  • leetcode-27. Remove Element
  • Python3爬取英雄联盟英雄皮肤大图
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 前端面试题总结
  • 浅谈Golang中select的用法
  • 如何在GitHub上创建个人博客
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • Python 之网络式编程
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • #Z2294. 打印树的直径
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (多级缓存)缓存同步
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (一) springboot详细介绍
  • (原創) 物件導向與老子思想 (OO)
  • .Net Winform开发笔记(一)
  • .NET 中的轻量级线程安全
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET上SQLite的连接
  • .Net中的设计模式——Factory Method模式
  • /etc/fstab 只读无法修改的解决办法
  • /var/spool/postfix/maildrop 下有大量文件
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @Autowired自动装配
  • @JoinTable会自动删除关联表的数据
  • [ linux ] linux 命令英文全称及解释
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [AIGC] MySQL存储引擎详解
  • [android学习笔记]学习jni编程