配置文件
/etc/libvirt/qemu/centos7.0.xml
<domain type='kvm'>
<name>centos7.0</name> #虚拟机的名字
<uuid>dd0d199e-1da7-486e-962c-f2899f64ece1</uuid> #每台虚拟机的uuid不能相同
<memory unit='KiB'>1048576</memory> #虚拟机现有内存
<currentMemory unit='KiB'>1048576</currentMemory> #虚拟机可用最大内存
<vcpu placement='static'>1</vcpu> #cpu的个数
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/centos7.0.qcow2'/> #此处为虚拟机磁盘路径
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
<interface type='network'>
<mac address='52:54:00:af:57:14'/> #虚拟机的mac地址也不能相同
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
下面为创建虚拟机的脚本
read -p "请输入新建虚拟机的名字" name
read -p "请输入新建虚拟机的内存大小(M)" mem
read -p "请输入新建虚拟机的cpu个数" cpu
mem=${mem:-1024} #如果mem未定义则默认值为1024
mem=$((${mem}*1024)) #下方内存的单位为kib我们输入时按照mib输入所以此处需乘以1024(kb与kib还是有点区别的同理mb与mib也是有区别的,奇怪的知识又增加了,有兴趣的可以去看看)
cpu=${cpu:-1} #设置cpu的个数未定义则默认为1
num=`openssl rand -hex 1`:`openssl rand -hex 1`:`openssl rand -hex 1` #创建16进制随机数,下面会用到
newvirtual=/etc/libvirt/qemu/${name}.xml #需要创建的虚拟机的名字
cp /var/lib/libvirt/images/centos7.0.qcow2 /var/lib/libvirt/images/${name}.qcow2 #以此虚拟机为模板创建虚拟机
cp /etc/libvirt/qemu/centos7.0.xml ${newvirtual} #模板虚拟机的配置文件
sed -ri "/<name>/c \ <name>${name}</name>" ${newvirtual} #找到配置文件名字所在行进行整行替换以下同理(\空格 是为了让修改后的格式与原来相同)
sed -ri "/<uuid>/c \ <uuid>`uuidgen`</uuid>" ${newvirtual}
sed -ri "/<memory unit='KiB'>/c \ <memory unit='KiB'>${mem}</memory>" ${newvirtual}
sed -ri "/<currentMemory unit='KiB'>/c \ <currentMemory unit='KiB'>${mem}</currentMemory>" ${newvirtual}
sed -ri "/<vcpu placement='static'>/c \ <vcpu placement='static'>${cpu}</vcpu>" ${newvirtual}
sed -ri "/source file/c \ <source file='/var/lib/libvirt/images/${name}.qcow2'/>" ${newvirtual}
sed -ri "/mac address/c \ <mac address='52:54:00:${num}'/>" ${newvirtual}
systemctl restart libvirtd
cat << eof
虚拟机${name}创建成功
内存$(($mem/1024))M
cpu${cpu}个
eof
创建新的uuid
[root@kvm script]# uuidgen
091ac687-a9ce-40c7-aed3-6866d8a97da6
创建新的mac
方法一
echo `openssl rand -hex 1`:`openssl rand -hex 1`:`openssl rand -hex 1`
ab:68:23
方法二
openssl rand -hex 3 | sed -r 's/(..)(..)(..)/\1:\2:\3/g'
04:d7:31
方法三
openssl rand -hex 3 | sed -r 's/..\B/&:/g'
9e:84:dc
注意
创建的新的虚拟机与你所选的模板虚拟机里的内容一样