ZStack云平台镜像封装实践 -- ZCCT考试

2024-02-04 11:20

本文主要是介绍ZStack云平台镜像封装实践 -- ZCCT考试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ZStack云平台镜像封装实践

00. 镜像封装的目的

  • 提高安装效率
    • 相比如iso模式创建云主机,使用已封装的镜像创建云主机,无需配置分区、安装模式等内容,提高部署效率
  • 无人值守安装
    • 创建云主机过程中无需人为干预,可批量创建云主机
  • 自定义配置
    • 封装镜像时可自定义软件包,安装更新、驱动等,可做到即装即用

01. 封装Linux

1.1 创建云主机

  • 添加镜像并且创建云主机
  • 指定hostname
  • 配置网络
  • 安装QEMU Guest Agent
  • 安装cloud-init(ssh_pwauth)
  • 创建系统模板,导出镜像(可选)

在这里插入图片描述

  • 系统模板配置
  • 创建系统模板

1.2 Linux 创建演示

  • winscp上传文件到服务器端

  • 镜像选择演示

    • 类型选择系统镜像
    • 镜像格式选择iso
    • URL选择文件URL
    • 选择好之后点击确定创建镜像

在这里插入图片描述

  • 创建成功

在这里插入图片描述

  • 点击打开控制台

在这里插入图片描述

  • 打开控制台后安装操作系统即可

  • 安装完操作系统后重启,再安装几个软件包

yum -y install bash-completion
  • 再设置主机名
hostnamectl set-hostname idayuanshuai.com
  • 安装cloud-init软件包
yum -y install cloud-init
  • 修改/etc/cloud/cloud.cfg
vim /etc/cloud/cloud.cfg
ssh_pwauth 1
datasource_list: [ ConfigDrive, None ]
datasource:ConfigDrive:dsmode: local
  • 启动cloud-init
[root@192-168-1-176 ~] systemctl start cloud-init
[root@192-168-1-176 ~] systemctl status cloud-init
● cloud-init.service - Initial cloud-init job (metadata service crawler)Loaded: loaded (/usr/lib/systemd/system/cloud-init.service; enabled; vendor preset: disabled)Active: active (exited) since Fri 2020-11-06 10:05:32 CST; 7s agoProcess: 9748 ExecStart=/usr/bin/cloud-init init (code=exited, status=0/SUCCESS)Main PID: 9748 (code=exited, status=0/SUCCESS)Nov 06 10:05:32 192-168-1-176 cloud-init[9748]: **************************************************************************
Nov 06 10:05:32 192-168-1-176 useradd[9775]: new group: name=centos, GID=1000
Nov 06 10:05:32 192-168-1-176 useradd[9775]: new user: name=centos, UID=1000, GID=1000, home=/home/centos, shell=/bin/bash
Nov 06 10:05:32 192-168-1-176 useradd[9775]: add 'centos' to group 'adm'
Nov 06 10:05:32 192-168-1-176 useradd[9775]: add 'centos' to group 'wheel'
Nov 06 10:05:32 192-168-1-176 useradd[9775]: add 'centos' to group 'systemd-journal'
Nov 06 10:05:32 192-168-1-176 useradd[9775]: add 'centos' to shadow group 'adm'
Nov 06 10:05:32 192-168-1-176 useradd[9775]: add 'centos' to shadow group 'wheel'
Nov 06 10:05:32 192-168-1-176 useradd[9775]: add 'centos' to shadow group 'systemd-journal'
Nov 06 10:05:32 192-168-1-176 systemd[1]: Started Initial cloud-init job (metadata service crawler).
  • 修改网卡配置文件,删除掉uuidmac地址,只留下如下内容
[root@idayuanshuai ~] cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
  • 安装qemu-guest-agent
[root@idayuanshuai ~] yum -y install qemu-guest-agent
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Package 10:qemu-guest-agent-2.12.0-3.el7.x86_64 already installed and latest version
Nothing to do

安装完成之后,即可支持再ZStackUI上在线修改云主机密码

  • 设置qemu-guest-agentcloud-init的开机自启动
[root@idayuanshuai ~]  systemctl enable cloud-init
[root@idayuanshuai ~]  systemctl enable qemu-guest-agent.service 
  • 安装vim
[root@idayuanshuai ~] yum -y install vim &> /dev/null
  • 关闭SElinux
[root@idayuanshuai ~] vim /etc/selinux/config
SELINUX=disabled
[root@idayuanshuai ~] setenforce 0
[root@idayuanshuai ~] getenforce 
Permissive
  • 将缓存中的内容写入磁盘
[root@idayuanshuai ~] sync 
[root@idayuanshuai ~] sync 
[root@idayuanshuai ~] sync 
[root@idayuanshuai ~] sync 
  • 关机
shutdown -h now
  • 创建云主机的模板镜像

在这里插入图片描述

  • 创建镜像

在这里插入图片描述

  • 创建云主机验证镜像是否成功
    在这里插入图片描述

  • 在云主机的详情页里面打开QGA开关,因为制作镜像时已经安装了qemu-guest agent

在这里插入图片描述

  • 在镜像的详情页里面也打开QGA开关

在这里插入图片描述

  • 选择导出镜像

在这里插入图片描述

  • 此时会显示已导出镜像的URL

在这里插入图片描述

可以直接通过该链接下载URLqcow2文件

02. 封装Windows

  • 创建云主机
  • 安装驱动程序
  • 预处理系统
  • 创建系统模板

在这里插入图片描述


2.1 创建系统镜像

  • 平台选择Windows virtio因为其性能更好

  • 不要勾选已安装qemu-guest agent

在这里插入图片描述


2.2 创建驱动镜像

  • 镜像格式选择iso
  • 平台选择others
  • 不勾选已安装qemu-guest agent

在这里插入图片描述


2.3 安装驱动

  • 安装scsi控制器驱动
    • 选择vioscsi目录下的2k12R2下的amd64目录
  • PCI简单通讯控制器驱动
    • 选择vioserial目录下的2k12r2下的amd64目录
  • 开启内存监控
    • 将驱动器下的Balloon下的2k12R2下的amd64目录下的blnsvr文件复制到C:/Windows/System32目录下
  • 以管理员身份运行CMD
    • 执行blnsvr.exe -l命令,执行完成后服务将会自动安装,启动
  • 进入驱动磁盘下的guest-agent目录下双击qemu-ga-x86_64.msi程序
  • 安装cloud-init程序
    • 进入官网https://cloudbase.it/cloudbase-init/#download
    • 选择对应的安装程序

在这里插入图片描述

  • 打开cmd
    • 输入diskpart
    • 再输入san policy=onlineall
  • 退出,再次打开cmd,进入c:Windows\System32\Sysprep\目录下,执行sysprep.exe命令
    • 对于弹出的窗口,勾选通用

03. 其他

  • 镜像格式支持qcow2isoraw三种
  • 使用virtio效率更高。如果Windows使用了virtio接口那么创建镜像时便选择WindowsVirtio平台
  • URL支持HTTP/HTTPS/FTP/SFTPfile方式,还支持本地文件上传
  • BIOS支持legacyuefi

这篇关于ZStack云平台镜像封装实践 -- ZCCT考试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_41633902/article/details/109533617
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/677319

相关文章

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Jvm sandbox mock机制的实践过程

《Jvmsandboxmock机制的实践过程》:本文主要介绍Jvmsandboxmock机制的实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景二、定义一个损坏的钟1、 Springboot工程中创建一个Clock类2、 添加一个Controller

Mysql中的用户管理实践

《Mysql中的用户管理实践》:本文主要介绍Mysql中的用户管理实践,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录13. 用户管理13.1 用户 13.1.1 用户信息 13.1.2 创建用户 13.1.3 删除用户 13.1.4 修改用户

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1