本文主要是介绍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).
- 修改网卡配置文件,删除掉
uuid
和mac
地址,只留下如下内容
[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
安装完成之后,即可支持再
ZStack
的UI
上在线修改云主机密码
- 设置
qemu-guest-agent
和cloud-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
可以直接通过该链接下载
URL
的qcow2
文件
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. 其他
- 镜像格式支持
qcow2
,iso
,raw
三种 - 使用
virtio
效率更高。如果Windows
使用了virtio
接口那么创建镜像时便选择WindowsVirtio
平台 URL
支持HTTP/HTTPS/FTP/SFTP
和file
方式,还支持本地文件上传BIOS
支持legacy
和uefi
这篇关于ZStack云平台镜像封装实践 -- ZCCT考试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!