===== 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