一、制作模板
- 制作镜像模板
[root@lwq kvm]# cp /home/kvm/virtual-img/centos-lwq-1.qcow2 /home/kvm/virtual-img/centos7-mod.qcow2
- 制作配置文件模板
[root@lwq kvm]# cp /etc/libvirt/qemu/centos-lwq-1.xml /etc/libvirt/qemu/centos7-mod.xml
- 修复配置文件模板
–把里面要替换的地方换成关键字 然后用sed做替换
修改的位置
- 网卡的mac地址改后面三位就行
开始配置虚拟机
- 定义变量
vm_name=centos7-1
vm_uuid=`uuidgen`
vm_mem=1048576
vm_disk_path=/home/centos7-1.qcow2 #这个地方时复制镜像的稳住
vm_mac=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'` #这是随机生成的16进制用来替换mac地址的
- 开始替换
sed -r \
-e s%vm_name%$vm_name% \
-e s%vm_uuid%$vm_uuid% \
-e s%vm_mem%$vm_mem% \
-e s%vm_disk_path%$vm_disk_path% \
-e centos7-mod.xml > centos7-1.xml
- 重启服务
systemctl restart libvirtd
- 启动虚拟机
virsh start centos7-1
写成shell脚本
#!/bin/bash
##利用模板快速创建虚拟机
## zy.小强
modkvm_install(){
def_name=`openssl rand -hex 5` #随机生成的字符串用来做默认名字
read -p "请输入虚拟机的名字[默认名字:$def_name]:" vm_name
read -p "请输入内存大小[默认1G],不要输入单位:" vm_mem
vm_name=${vm_name:-$def_name} #定义默认名字
vm_uuid=`uuidgen`
def_mem=1
vm_mem=${vm_mem:-$def_mem} #定义默认内存
vm_mac=`openssl rand -hex 3 | sed -r 's/..\B/&:/g'`
vm_mem=${vm_mem}00000
#源镜像位置
sourceimage=/home/kvm/virtual-img/centos-lwq-1.qcow2
#源模板位置
sourcexml=/etc/libvirt/qemu/centos7-mod.xml
#新的镜像位置
newimg=/home/kvm/virtual-img/${vm_name}.qcow2
#新的模板位置
newxml=/etc/libvirt/qemu/${vm_name}.xml
echo "正在复制模板和镜像"
cp $sourceimage $newimg
cp $sourcexml $newxml
echo "正在修改模板"
sed -r \
-e s%vm_name%$vm_name% \
-e s%vm_uuid%$vm_uuid% \
-e s%vm_mem%$vm_mem% \
-e s%vm_disk_path%$newimg% \
-e s%vm_mac%$vm_mac% $sourcexml > $newxml
echo "正在重启libvirtd服务"
systemctl restart libvirtd
echo "正在启动虚拟机"
virsh start $vm_name
if [ $? -eq 0 ];then
echo "启动成功自动列出虚拟机信息"
virsh list --all | grep $vm_name | awk '{print $2"——————"$3}'
else
echo "启动失败!!!!!!!!"
fi
}
modkvm_install #调用函数