本文将讨论如何使用virt-customize自定义Qcow2映像,QCOW代表(QEMU Copy On Write),是QEMU处理器仿真器支持的磁盘映像格式之一,它使用磁盘存储优化策略,在实际需要之前延迟存储分配,Qcow2旨在取代qcow图像格式,这些图像格式通常用于OpenStack Platform、KVM管理程序和oVirt/RHEV虚拟化平台,在这篇文章中,我们将操作一些自定义Qcow图像格式的示例,同时保持数据完整性和图像大小的小消耗。
virt-customize简介
virt-customize命令行工具由libguestfs-tools包提供,可用于在各种Linux发行版上安装, Virt-customize可以通过安装软件包,编辑配置文件等来自定义虚拟机(磁盘映像),它通过修改guest虚拟机或磁盘映像来实现此目的,它适用于raw和qcow2图像格式。
在Linux上安装virt-customize
通过libguestfs-tools安装virt-customize命令行工具:
1、CentOS/RHEL
$ sudo yum -y install libguestfs-tools
2、Ubuntu/Debian
$ sudo apt-get -y install libguestfs-tools
3、Arch/Manjaro
$ yaourt -S --noconfirm --needed libguestfs
通过查看帮助页面确认安装:
$ virt-customize --help
如果正在处理正在运行的虚拟机映像,请在进行就地编辑之前将其停止,在KVM上(在Debian 10 Buster系统中安装KVM虚拟化的方法),通过以下方式执行此操作:
sudo virsh shutdown
virt-customize使用示例
我们将介绍一些如何使用virt-customize自定义Qcow2和Raw OS图像格式的示例。
首先,访问集LIBGUESTFS_BACKEND:
export LIBGUESTFS_BACKEND=direct
1.设置root密码
要设置root密码,请使用以下命令:
# virt-customize -a rhel-server-7.6.qcow2 --root-password password:StrongRootPassword
[ 0.0] Examining the guest ...
[ 1.9] Setting a random seed
[ 1.9] Setting passwords
[ 6.8] Finishing off
注:
rhel-server-7.6.qcow2是要修改图像的名称。
StrongRootPassword是为root用户设置的密码。
2.注册RHEL系统
要注册RHEL映像并订阅可用池,请使用以下命令:
$ virt-customize -a overcloud-full.qcow2 --run-command 'subscription-manager register --username=[username] --password=[password]'
[ 0.0] Examining the guest ...
[ 2.0] Setting a random seed
[ 2.0] Running: subscription-manager register --username=user1 --password=mypassword
[ 38.5] Finishing off
$ virt-customize -a rhel-server-7.6.qcow2 --run-command 'subscription-manager attach --pool [subscription-pool]'
注:
[username]-替换为有效的用户名,例如–username=admin。
[password]-替换为提供的用户名的有效密码。
-run-command选项用于执行虚拟映像文件中的任何命令。
3.在图像中安装软件包
可以使用以下命令在qcow2或原始磁盘映像中安装软件包:
$ virt-customize -a rhel-server-7.6.qcow2 --install [vim,bash-completion,wget,curl,telnet,unzip]
[ 0.0] Examining the guest ...
[ 2.1] Setting a random seed
[ 2.1] Installing packages: [vim bash-completion wget curl telnet unzip]
[ 563.2] Finishing off
$ virt-customize -a rhel-server-7.6.qcow2 --install net-tools
4.上传文件
见下面的例子:
$ virt-customize -a rhel-server-7.6.qcow2 --upload rhsm.conf:/etc/rhsm/rhsm.conf
[ 0.0] Examining the guest ...
[ 2.9] Setting a random seed
[ 3.0] Setting the machine ID in /etc/machine-id
[ 3.0] Uploading: rhsm.conf to /etc/rhsm/rhsm.conf
[ 3.4] Finishing off
# virt-customize -a rhel-server-7.6.qcow2 --upload yum.conf:/etc/yum.conf
[ 0.0] Examining the guest ...
[ 1.9] Setting a random seed
[ 1.9] Uploading: yum.conf to /etc/yum.conf
[ 2.2] Finishing off
# virt-customize -a rhel-server-7.6.qcow2 --upload proxy.sh:/etc/profile.d/
[ 0.0] Examining the guest ...
[ 1.9] Setting a random seed
[ 1.9] Uploading: proxy.sh to /etc/profile.d/
[ 2.3] Finishing off
格式为:
local_file_path:image_file_path
5.设置时区
# virt-customize -a rhel-server-7.6.qcow2 --timezone "Asia/Shanghai"
6.上传SSH公钥
上传用户的SSH公钥:
$ virt-customize -a rhel-server-7.6.qcow2 --ssh-inject jmutai:file:./id_rsa.pub
[ 0.0] Examining the guest ...
[ 1.9] Setting a random seed
[ 2.0] SSH key inject: jmutai
[ 3.2] Finishing off
7.Relabel SELinux
要重新标记SELinux文件上下文,请使用:
$ virt-customize -a rhel-server-7.6.qcow2 --selinux-relabel
[ 0.0] Examining the guest ...
[ 2.0] Setting a random seed
[ 2.0] SELinux relabelling
[ 8.6] Finishing off
有关更多命令用法选项,请检查:
$ man virt-customize
$ virt-customize --help
相关主题
如果觉得《运行自定义映像。linux 安装和使用virt-customize自定义Qcow2/Raw Linux OS磁盘映像》对你有帮助,请点赞、收藏,并留下你的观点哦!