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考试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677319

相关文章

C++必修:模版的入门到实践

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C++学习 贝蒂的主页:Betty’s blog 1. 泛型编程 首先让我们来思考一个问题,如何实现一个交换函数? void swap(int& x, int& y){int tmp = x;x = y;y = tmp;} 相信大家很快就能写出上面这段代码,但是如果要求这个交换函数支持字符型

公共筛选组件(二次封装antd)支持代码提示

如果项目是基于antd组件库为基础搭建,可使用此公共筛选组件 使用到的库 npm i antdnpm i lodash-esnpm i @types/lodash-es -D /components/CommonSearch index.tsx import React from 'react';import { Button, Card, Form } from 'antd'

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

比较学习难度:Adobe Illustrator、Photoshop和新兴在线设计平台

从入门设计开始,几乎没有人不知道 Adobe 公司两大设计软件:Adobe Illustrator和 Photoshop。虽然AI和PS很有名,有一定设计经验的设计师可以在早期探索和使用后大致了解AI和PS的区别,但似乎很少有人会系统地比较AI和PS。目前,设计软件功能多样,轻量级和网页设计软件已成为许多设计师的需求。对于初学者来说,一篇有针对性的AI和PS比较总结文章具有非常重要的指导意义。毕竟

智慧环保一体化平台登录

据悉,在当今这个数字化、智能化的时代,环境保护工作也需要与时俱进,不断创新。朗观视觉智慧环保一体化平台应运而生,它利用先进的信息技术手段,为环保工作提供了更加便捷、高效的管理方式,成为推动绿色发展的重要力量。 一、智慧环保一体化平台的诞生背景 随着工业化进程的加快,环境污染问题日益严重,传统的环保管理模式已经难以满足现代社会的需求。为了提高环保工作的效率和质量,智慧环保一体化平台应运而

9 个 GraphQL 安全最佳实践

GraphQL 已被最大的平台采用 - Facebook、Twitter、Github、Pinterest、Walmart - 这些大公司不能在安全性上妥协。但是,尽管 GraphQL 可以成为您的 API 的非常安全的选项,但它并不是开箱即用的。事实恰恰相反:即使是最新手的黑客,所有大门都是敞开的。此外,GraphQL 有自己的一套注意事项,因此如果您来自 REST,您可能会错过一些重要步骤!

axios全局封装AbortController取消重复请求

为什么? 问题:为什么axios要配置AbortController?防抖节流不行吗? 分析: 防抖节流本质上是用延时器来操作请求的。防抖是判断延时器是否存在,如果存在,清除延时器,重新开启一个延时器,只执行最后一次请求。节流呢,是判断延时器是否存在,如果存在,直接return掉,直到执行完这个延时器。事实上,这些体验感都不算友好,因为对于用户来说,得等一些时间,尤其是首次请求,不是那么流畅

Python利用qq邮箱发送通知邮件(已封装成model)

因为经常喜欢写一些脚本、爬虫之类的东西,有需要通知的时候,总是苦于没有太好的通知方式,虽然邮件相对于微信、短信来说,接收性差了一些,但毕竟免费,而且支持html直接渲染,所以,折腾了一个可以直接使用的sendemail模块。这里主要应用的是QQ发邮件,微信关注QQ邮箱后,也可以实时的接收到消息,肾好! 好了,废话不多说,直接上代码。 # encoding: utf-8import lo