虚拟化技术KVMkvm虚拟机创建-生成脚本

【虚拟化技术KVMkvm虚拟机创建-生成脚本】一身转战三千里,一剑曾百万师。这篇文章主要讲述虚拟化技术KVMkvm虚拟机创建-生成脚本相关的知识,希望能为你提供帮助。

  • 安装目录自带的脚本
cd kvmvirtual/virtual_create/
ll
createvm.sh 脚本文件





解释createvm.sh
#获取传递的参数“help,autostart,address:,port:,name”
options=$(getopt -l "help,autostart,address:,port:,name:" -o "h:a:p:n:" -a -- "$@")
#检测有无对应参数,没有则退出
if [ $? -ne 0 ]; then
exit 1404
fi
#设置成数组
eval set -- "$options"

#死循环:对“h:a:p:n”依次调用后,移位到没有参数的选项,检测不到参数后break退出
while true; do
case $1 in
-h|--help)
echo -e $HELPINFO
exit 0
; ;
-a|--address)
ping -c3 $2 & > /dev/null
if [ $? -eq 0 ]; then
echo "$2 该地址好像在网络中的另外一台终端中正在使用, 请尝试其他IP地址"
exit 1403
fi
NEW_MACHINES_ADDRESS=$2
; ;
-p|--port)
ss -anptu | grep ":$2" & > /dev/null
if [ $? -eq 0 ]; then
echo "$2 该端口正在使用中, 请更换端口继续"
exit 2403
fi
NEW_MACHINES_VNC=$2
; ;
-n|--name)
virsh list --all | grep $2 & > /dev/null
if [ $? -eq 0 ]; then
echo "$2 虚拟机已经存在, 请更换其他虚拟机名字"
exit 3403
fi
NEW_MACHINES_NAME=$2
; ;
--)
shift
break
; ;
esac
shift
done

#位置变量
VM_CONFIG_PATH="/etc/libvirt/qemu"
VM_IMAGE_PATH="/kvm/vdisks"
VM_IMAGE_MODIFY_PATH="/kvm/modify"
TEMPLATE_IMAGE_NAME="template.raw"
TEMPLATE_CONFIG_NAME="template.xml"


# 修改IP地址
qemu-img create -f qcow2 -b $VM_IMAGE_PATH/$TEMPLATE_IMAGE_NAME $VM_IMAGE_PATH/$NEW_MACHINES_NAME.qcow2
guestmount -a $VM_IMAGE_PATH/$NEW_MACHINES_NAME.qcow2 -m /dev/centos/root $VM_IMAGE_MODIFY_PATH
sed -ri "s/^IPADDR.*/IPADDR=$NEW_MACHINES_ADDRESS/" $VM_IMAGE_MODIFY_PATH/etc/sysconfig/network-scripts/ifcfg-eth0
sed -ri "s/template/$NEW_MACHINES_NAME/" $VM_IMAGE_MODIFY_PATH/etc/hostname
guestunmount $VM_IMAGE_MODIFY_PATH

# 构建配置文件
cp $VM_CONFIG_PATH/$TEMPLATE_CONFIG_NAME,$NEW_MACHINES_NAME.xml
sed -ri "s/NAME/$NEW_MACHINES_NAME/" $VM_CONFIG_PATH/$NEW_MACHINES_NAME.xml
sed -ri "s/VNCPORT/$NEW_MACHINES_VNC/" $VM_CONFIG_PATH/$NEW_MACHINES_NAME.xml
virsh define $VM_CONFIG_PATH/$NEW_MACHINES_NAME.xml
virsh start $NEW_MACHINES_NAME




脚本中需准备test-createvm.qcow2,test-createvm.xml文件
TEMPLATE_IMAGE_NAME="template.raw"
TEMPLATE_CONFIG_NAME="template.xml"

#TEMPLATE_IMAGE_NAME="test-createvm.qcow2"
#TEMPLATE_CONFIG_NAME="test-createvm.xml"

cp /kvm/vdisks/test-nat-network2.qcow2,test-createvm.qcow2
cp /etc/libvirt/qemu/test-nat-network.xml,test-createvm.xml



可执行文件添加到命令
[root@localhost virtual_create]# cp createvm.sh /usr/local/bin/createvm
[root@localhost virtual_create]# chmod a+x /usr/local/bin/createvm
[root@localhost virtual_create]# createvm --help
用法: createvm [hapn]...
Create a virtual machine and create a fixed
IP address, vnc port, virtual machine name
-h, --help 获取帮助信息
-a, --address 设置IP地址
-p, --port 设置vnc端口
-n, --name 设置虚拟机名称
退出状态:
0 正常
1404 一般问题 (例如:没有对应的选项)
x403 严重问题 (例如:设置参数不正确)




去除唯一标识

vim /etc/libvirt/qemu/test-createvm.xml

NAME

uuid //删除,自动生成




mac //删除,自动生成

port=VNCPORT //port 自动获取



利用createvm脚本创建虚拟机
createvm -a 192.168.19.111 -p 5903 -n test-createvm-01





    推荐阅读