在仅有CLI环境的情况下,进入KVM客户机虚拟机的控制台并使用Kickstart进行配置的方法如下
概要 – 总结
我打算从ISO创建一个KVM的qcow2镜像,为此我搭建了KVM主机的环境。然而,当我查找了一些网络资料时,发现虽然有关于通过图形界面进行配置的方法,但是在只有命令行界面的环境下进行配置的方法很少见。本次记录的是如何通过命令行界面从KVM主机使用ISO和Kickstart创建虚拟机并生成qcow2镜像。需要注意的是,KVM主机已经搭建好了。在本环境中,我将使用CentOS7.0.1406来创建一个来自CentOS6.3的ISO的qcow2镜像。
操作步骤 (Caozuo buzhou)
启动KVM的默认网络。 忘记启动默认网络将导致无法启动虚拟机,所以请记得这一点。
virsh net-start default
国际标准化组织获得
获取ISO映像文件。CentOS6.X的ISO映像文件可在http://archive.kernel.org/的centos-vault目录下找到。
cd /usr/loca/src/
wget http://archive.kernel.org/centos-vault/6.3/isos/x86_64/CentOS-6.3-x86_64-bin-DVD1.iso
如果能够得到,就进行挂载。
mkdir /mnt/centos-6.3
mount /usr/loca/src/CentOS-6.3-x86_64-bin-DVD1.iso /mnt/centos-6.3
启动设定
为了启动Kickstart,需要启动Apache服务。需要将Kickstart文件放置在/var/www/html/centos-6.3-x86_64目录下。
yum install httpd
mkdir -p /var/www/html/centos-6.3-x86_64
cd /var/www/html/centos-6.3-x86_64
ln -s /mnt/centos-6.3 iso
systemctl start httpd
KVM嘉宾启动
创建qcow2映像然后启动KVM客户机。该映像将以10GB大小创建,但由于采用了thin provisioning的qcow2格式,实际占用空间更小。
qemu-img create -f qcow2 /tmp/centos-6.3.qcow2 10G
virt-install --virt-type kvm \
--name centos-6.3 \
--ram 1024 --hvm --connect qemu:///system \
--nographics --accelerate --network network:default \
--disk /tmp/centos-6.3.qcow2,format=qcow2 \
--os-type=linux --os-variant=rhel6 \
--location=/var/www/html/centos-6.3-x86_64/iso \
--extra-args="ks=http://127.0.0.1/centos-6.3-x86_64/ks.cfg console=ttyS0,115200n8 serial"
处理剩余事务
最后,Kickstart会自动创建虚拟机。完成后,将其关机,并删除MAC地址信息,以及虚拟机的域和XML定义文件。
virt-sysprep -d centos-6.3
virsh undefine centos-6.3
这样一来,在/tmp目录下就创建了名为centos-6.3.qcow2的qcow2镜像。
请参考
OpenStack虚拟机镜像指南