博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
虚拟磁盘离线访问工具--guestfish(2of2)
阅读量:7009 次
发布时间:2019-06-28

本文共 1273 字,大约阅读时间需要 4 分钟。

现在再来说一说关于批量建立虚拟机的问题。根据不同的需要和要求,用guestfish 或者 virt-customize 都可以来实现,只是具体命令不一。我觉得后者比较更加的灵活和容易。因为virt分为customize,edit,builder,append,好多功能于一体,然后还可以互相套用。

我的这个脚本只是创建了硬盘并带有系统和更改的文件参数,却并没有建立vm。因为这个不是重点,导入进去就好了

假如有个场景里面,你要创建50 台虚拟机,并且各自需要自己的固定IP地址而不是DHCP自动分配,(假如要是自动分配的话,那就非常简单了,就是克隆50次,然后再直接import进去就好了)还有主机名。我认为简单的方法就是,先做一台样板机,是符合你的要求的。然后呢,写个脚本复制/clone那个硬盘50次,并且更改每个主机的ip,subnet,boot type,hostname等

看下我写的脚本:

#this is the script to create batched vms,
#it includes two parts,copy disks and modify vms'ifcfg-eth0.
#created by Vincent
#!/bin/bash
path=/etc/sysconfig/network-scripts/ifcfg-eth0
while read line
do
ip=echo $line|awk '{print $1}'
name=echo $line|awk '{print $2}'
cp /vm/vm3.qcow2 /vm/${name}.qcom2
virt-customize -a /vm/${name}.qcom2 --append-line $path:IPADDR=$ip --append-line $path:NETMASK=255.255.255.0 --edit $path:s/BOOTPROTO=dhcp/BOOTPROTO=none/
done < /vm/list.txt
echo "${name}is done"

这个脚本很简单,用while read来做,加上主机名和IP地址都是已知,就直接导进来即可。假如要都是规律的话并且麻烦一点的话,100台主机IP,还有100个以kvm为前缀的主机都用for循环来做并且写在while read之前。然后用paste这个命令合成一个文件,再导入到while read里就可以了。如果再升级一点的或就直接改成函数,现在没啥时间,以后再说。

在这里我用的是virt-customize,因为后面可以加上edit这个扩展命令,因为呢这个命令可以带一个类似于sed的工具,也可以说是perl。 基本上sed的规则都可以实用。正是用这个命令更改了ifcfg-eth0 里面的 bootproto。list这个文件夹里面又有具体IP,主机名。

转载于:https://blog.51cto.com/11419317/2131162

你可能感兴趣的文章
字符串的排列 【微软面试100题 第五十三题】
查看>>
android 获取已安装程序列表
查看>>
关于按钮背景透明 + div拖拽
查看>>
CPU核数跟多线程的关系
查看>>
hadoop mapreduce 计算平均气温的代码,绝对原创
查看>>
使用python实现后台系统的JWT认证(转)
查看>>
Count and Say
查看>>
PHP安全编程:register_globals的安全性 全局变量注册(转)
查看>>
SQL批处理与事务控制
查看>>
POJ - 2391 最大流
查看>>
WCF学习资料汇总
查看>>
15-Flutter移动电商实战-商品推荐区域制作
查看>>
LeetCode-Best Time to Buy and Sell Stock I&&II
查看>>
Java compiler level does not match解决方法(转)
查看>>
ROS初级教程 cmake cmakelist.txt 的编写教程
查看>>
Comparing Inline and Multi-Statement Table valued UDFs
查看>>
python 机器学习
查看>>
php如何控制客户端生成缓存
查看>>
不错的在线印章生成器网站
查看>>
Arduino控制LCD显示helloworld
查看>>