kvm纯命令创建虚拟机

配置文件

/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

注意

创建的新的虚拟机与你所选的模板虚拟机里的内容一样

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值