本文将讨论如何使用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 <domain-name or ID>
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.设置时区 你还可以在OS映像文件上设置时区(在Ubuntu 18.04终端中修改时区的方法),比如: # 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
相关主题 |