===== What? ===== My notes on deploying RHEL in kvm guests using virt-install. ===== backing with thin provisioned LVM ===== # create a thin provisioned LVM VG "pool" # install apache and configure it to export the RHEL media. Will be used as repo. # also a directory "ks" will contain the kickstart file used for deployment. # create a second bridge, virbr1 # create a single bash script. When run, this will install the guest. cat >donew_rhel6u5a</dev/null || lvcreate -T store/pool -V 16G -n tvm_$HOSTNAME virsh destroy $HOSTNAME 2>/dev/null virsh undefine $HOSTNAME 2>/dev/null cp $DISTROMAJOR.template ks/$HOSTNAME sed -i "s,DISTRO,$DISTRO,g" ks/$HOSTNAME sed -i "s,IPADDR,$IPADDR,g" ks/$HOSTNAME sed -i "s,HOSTNAME,$HOSTNAME,g" ks/$HOSTNAME virt-install -n $HOSTNAME -r 1024 --vcpus 2 --cpu host --disk path=/dev/store/tvm_$HOSTNAME \ --location /mnt/store/deploy/repos/$DISTRO/ \ -w bridge=virbr0 --os-variant rhel6 --graphics none \ -w bridge=virbr1 \ -w bridge=virbr1 \ -w bridge=virbr2 \ -w bridge=virbr2 \ --extra-args "ip=$IPADDR netmask=255.255.255.0 ks=http://192.168.4.1/ks/$HOSTNAME repo=http://192.168.4.1/repos/$DISTRO ksdevice=eth0 console=tty0 console=ttyS0,19200n8" EOT ===== backing qcow2 file ===== # create a single bash script. When run, this will install the guest. cat >donew_rhel6u5b</dev/null virsh undefine $HOSTNAME 2>/dev/null rm -f /mnt/store/deploy/images/tvm_$HOSTNAME qemu-img create -f qcow2 -o preallocation=metadata,compat=1.1 /mnt/store/deploy/images/tvm_$HOSTNAME 18G cp $DISTROMAJOR.template ks/$HOSTNAME sed -i "s,DISTRO,$DISTRO,g" ks/$HOSTNAME sed -i "s,IPADDR,$IPADDR,g" ks/$HOSTNAME sed -i "s,HOSTNAME,$HOSTNAME,g" ks/$HOSTNAME virt-install -n $HOSTNAME -r 1024 --vcpus 2 --cpu host \ --disk path=/mnt/store/deploy/images/tvm_$HOSTNAME,bus=virtio \ --location /mnt/store/deploy/repos/$DISTRO/ \ -w bridge=virbr0 --os-variant rhel6 --graphics none \ -w bridge=virbr1 \ -w bridge=virbr1 \ -w bridge=virbr2 \ -w bridge=virbr2 \ --extra-args "ip=$IPADDR netmask=255.255.255.0 ks=http://192.168.4.1/ks/$HOSTNAME repo=http://192.168.4.1/repos/$DISTRO ksdevice=eth0 console=tty0 console=ttyS0,19200n8" EOT