【虚拟化技术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.xmlNAME
uuid //删除,自动生成
mac //删除,自动生成
port=VNCPORT //port 自动获取
利用createvm脚本创建虚拟机
createvm -a 192.168.19.111 -p 5903 -n test-createvm-01
推荐阅读
- Flannel 同节点通信
- 没有JDK和Maven,用Docker也能构建Maven工程
- JavaWeb+MySQL实现课程管理系统
- kudu表数据备份还原说明
- linux-ext4格式文件误删除恢复
- CentOS 备份实战
- 信而泰一体化智能测试,助力客户降本增效
- [ 链表OJ题 --C语言实现 ] 反转链表
- “军备竞赛”时期的对比学习