前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速创建KVM虚拟机

快速创建KVM虚拟机

作者头像
jeremyxu
发布2018-05-10 17:22:00
2K0
发布2018-05-10 17:22:00
举报
文章被收录于专栏:jeremy的技术点滴

以前写到一篇文章制作CentOS6基础镜像,今天在工作中突然要临时创建很多虚拟机,于是结合那篇文章得到的基础镜像,写了个简单的脚本快速创建KVM虚拟机。

快速创建一个虚拟机的脚本

这里假设创建的基础镜像为centos6.7-sys.img,而且是qcow2格式的。

create_vm.sh

代码语言:javascript
复制
#!/bin/bash
domain_name=$1
ip_fetch_method=$2
static_ip=$3
static_netmask=$4
static_gateway=$5
static_dns1=$6
static_dns2=$7
base_img_path=/vmdata/base/centos6.7-sys.img
vm_img_dir=/vmdata
#创建虚拟机的磁盘镜像文件
qemu-img create -f qcow2 -b $base_img_path$vm_img_dir/$domain_name.img
#将磁盘镜像文件挂载至宿主机目录,便于修改内部文件
guestmount -i -w -a $vm_img_dir/$domain_name.img /mnt
#设置主机名
echo"
NETWORKING=yes
HOSTNAME=$domain_name
" > /mnt/etc/sysconfig/network
#如采用静态IP,则设置IP地址相关信息
if [ $ip_fetch_method == "static" ] ; then
echo"
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=$static_ip
NETMASK=$static_netmask
GATEWAY=$static_gateway
DNS1=$static_dns1
DNS2=$static_dns2
" > /mnt/etc/sysconfig/network-scripts/ifcfg-eth0
fi
#取消挂载
umount /mnt
#创建并启动虚拟机
virt-install --import --name=$domain_name --vcpus=2 --ram 2048 --boot hd --disk path=$vm_img_dir/$domain_name.img,format=qcow2,bus=virtio --network bridge=br0,model=virtio --autostart --graphics vnc,keymap=en-us --noautoconsole

脚本的逻辑比较简单,注释写得很清楚。需要注意跟以前不太一样的地方有两点:

  • 这次是使用guestmount命令将磁盘文件先挂载至临时目录,这样修改磁盘文件里的内容就很方便了,个人感觉这个比以前用的virt-copy-in命令方案还是简单一些的。guestmount命令的用法可直接man guestmount查看。
  • 这次是使用virt-install命令创建并启动虚拟机。这种方式相当快速,也是一般推荐的快速命令行创建虚拟机的办法。virt-install命令的参数相当多,虚拟机配置的方方面面都有参数,这里只使用了一些必须的,再详细的参数说明可直接man virt-install查看。

快速创建N个虚拟机

再写一个脚本,根据业务需要,调用上述脚本快速创建虚拟机。

代码语言:javascript
复制
#!/bin/bash

vm_name_prefix='test'

#循环创建20个虚拟机
for((i=1; i<=20; i++))
do
  create_vm.sh $vm_name_prefix$i static 10.10.10.$i 255.255.255.0 10.10.10.254 202.96.134.133 8.8.8.8
done

其它

/usr/sbin/virt-install本身就是用python编写的,使用了libvirt库API的python绑定,如果想了解如何使用libvirt库API,个人觉得这个源码还是可以读一读的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 快速创建一个虚拟机的脚本
  • 快速创建N个虚拟机
  • 其它
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档