1 准备模板机

具体步骤如下: 
1. 下载镜像安装系统

https://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/

  

2. 安装完成配置好IP ,关闭SELINUX ,关闭firewalld ,修改网卡名

3. 预设置好修改其他机器IP脚本

1.1 安装系统

1.2 模板机的设置

修改网卡名eth0

# 当前系统版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)# 修改网卡配置文件为eth0
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# mv ifcfg-enxxxx eth0# 修改为静态ip
[root@localhost network-scripts]# cat ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR=10.0.0.79
NETMASK=255.255.255.0
GATEWAY=10.0.0.2
DNS1=10.0.0.2# 禁用该可预测命名规则
# 在 grup 文件里面的 GRUB_CMDLINE_LINUX 变量添加 net.ifnames=0 biosdevname=0
[root@localhost ~]# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"#运行命令重新生成GRUB配置并更新内核参数
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-692c580a413f41d8b51ddc4724500560
Found initrd image: /boot/initramfs-0-rescue-692c580a413f41d8b51ddc4724500560.img
done

  

关闭selinux

[root@localhost ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
[root@localhost ~]# egrep -v "^#|^$" /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted

  

关闭firewalld

[root@localhost ~]# systemctl disable firewalld.service

  

重启系统

[root@localhost ~]# reboot

  

然后给批量创建虚拟机设置自定义的IP和主机名的脚本

[root@localhost ~]# cat /root/first.sh
#!/bin/bash
#Author:keme
#Blog:https://www.cnblogs.com/keme
#Time:2018-11-23
#Name:first.sh
#Version:V1.0
#Description:This is a test script.ip=$1
hostname=$2if [ $# -ne 2 ]
thenecho "sh $0 ip hostname"
fiset_ip(){sed -ri "/IPADDR/s#(.*.)\..*#\1.${ip}#" /etc/sysconfig/network-scripts/ifcfg-eth0sed -ri "/IPADDR/s#(.*.)\..*#\1.${ip}#" /etc/sysconfig/network-scripts/ifcfg-eth1echo "=============================================="echo "now you can running : service network restart"service network restart
}set_hostname(){sed -i "s#.*#${hostname}#" /etc/hostnamehostnamectl set-hostname ${hostname}echo "=============================================="echo "hostname is : $(cat /etc/hostname)"echo "=============================================="
}main(){set_ipset_hostname
}main
[root@localhost ~]# chmod +x /root/first.sh

  

关机创建快照

2 目录规划

  1. 模板虚拟机所在目录

2.1 模板机所在目录

E:\VMS\Centos7\template

  

3 vmrun结合脚本批量创建虚拟机

  1. vmrun.exe 程序
  2. git 软件
  3. 编写脚本
  4. 设置IP 的脚本

3.1 vmrun.exe

找到vmrun.exe 程序

创建一个E:\SOFT\VM文件夹复制到新创建的文件夹

vmrun使用

https://www.cnblogs.com/qiaoyanlin/p/6883487.html 
https://www.vmware.com/pdf/vix162_vmrun_command.pdf

3.2 git 软件作用

方便使用linux 的shell 命令

3.3 编写脚本

auto_VM.sh内容如下

#!/bin/bash
#Author:keme
#Blog:https://www.cnblogs.com/keme/
#Time:2018-11-23
#Name:auto_vm.sh
#Version:V1.0PATH_TEM="/E/VMS/Centos7/template/template.vmx"
PATH_SERVICE="/E/VMS/Centos7"
PATH_SERVICE_CMD="E:\VMS\Centos7"
#######################################
#PATH_TEM="/E/VMS/Debian8/template/template.vmx"
#PATH_SERVICE="/E/VMS/Debian8"
#PATH_SERVICE_CMD="E:\\VMS\\Debian8"
######################################
PATH_VMRUN_CMD="E:\\SOFT\\VM"
PATH_VMS="E:\\VMS"
SERVER_NAME="FDSF"
CLUSTER_NAME="FDFS-cluster"
SHOT_NAME="$2"# 创建克隆链接的虚拟机
VM_create(){for i in $(cat host-list.txt) doecho "开始创建链接克隆: ${SERVER_NAME}-${i}"/E/SOFT/VM/vmrun.exe -T ws clone  "${PATH_TEM}"  ${PATH_SERVICE}/${CLUSTER_NAME}/${SERVER_NAME}-${i}/${SERVER_NAME}-${i}.vmx linked -snapshot=CLEAN  -cloneName=${SERVER_NAME}-${i}sleep 2 done
}# 启动创建好的虚拟机
VM_start(){for i in $(cat host-list.txt) doecho "开始启动: ${SERVER_NAME}-${i}"/E/SOFT/VM/vmrun.exe -T ws start ${PATH_SERVICE}/${CLUSTER_NAME}/${SERVER_NAME}-${i}/${SERVER_NAME}-${i}.vmxsleep 10done
}# 批量修改IP地址
VM_set_IP(){>  ${PATH_VMS}\\set_ip.batfor i in $(cat host-list.txt) doecho "${PATH_VMRUN_CMD}\\vmrun.exe -T ws -gu root -gp 123456 runProgramInGuest  \"${PATH_SERVICE_CMD}\\${CLUSTER_NAME}\\${SERVER_NAME}-${i}\\${SERVER_NAME}-${i}.vmx\" /bin/bash /root/first.sh ${i} ${SERVER_NAME}-${i}" >>  ${PATH_VMS}\\set_ip.batecho "ping -n 5 127.0.0.1 >nul" >> ${PATH_VMS}\\set_ip.batdoneecho "修改IP脚本生成路径: ${PATH_VMS}\\set_ip.bat"echo -e "运行命令:\n1.打开cmd.exe\n2.输入: ${PATH_VMS}\\set_ip.bat"
}# 修改好后批量关机
VM_stop(){for i in $(cat host-list.txt) doecho "开始关闭: ${SERVER_NAME}-${i}"/E/SOFT/VM/vmrun.exe -T ws stop ${PATH_SERVICE}/${CLUSTER_NAME}/${SERVER_NAME}-${i}/${SERVER_NAME}-${i}.vmxsleep 2 done
}# 关机后批量创建快照
VM_snapshot(){for i in $(cat host-list.txt) doecho "开始快照: ${SERVER_NAME}-${i}"/E/SOFT/VM/vmrun.exe -T ws snapshot "${PATH_SERVICE}/${CLUSTER_NAME}/${SERVER_NAME}-${i}/${SERVER_NAME}-${i}.vmx" ${SHOT_NAME}sleep 2 done
}# 获取快照列表
VM_shot_list(){for i in $(cat host-list.txt) doecho "获取快照列表: ${SERVER_NAME}-${i}"/E/SOFT/VM/vmrun.exe -T ws listSnapshots "${PATH_SERVICE}/${CLUSTER_NAME}/${SERVER_NAME}-${i}/${SERVER_NAME}-${i}.vmx"sleep 2 done
}# 批量恢复快照
VM_shot_back(){for i in $(cat host-list.txt) doecho "开始恢复快照: ${SERVER_NAME}-${i} ${SHOT_NAME}"/E/SOFT/VM/vmrun.exe -T ws revertToSnapshot "${PATH_SERVICE}/${CLUSTER_NAME}/${SERVER_NAME}-${i}/${SERVER_NAME}-${i}.vmx" ${SHOT_NAME}sleep 2 done
}# 批量删除快照
VM_shot_del(){for i in $(cat host-list.txt) doecho "开始删除快照: ${SERVER_NAME}-${i} ${SHOT_NAME}"/E/SOFT/VM/vmrun.exe -T ws deleteSnapshot "${PATH_SERVICE}/${CLUSTER_NAME}/${SERVER_NAME}-${i}/${SERVER_NAME}-${i}.vmx" ${SHOT_NAME}sleep 2 done
}# 获取当前正在运行的虚拟机
VM_list(){echo "当前正在运行的虚拟机:"/E/SOFT/VM/vmrun.exe -T ws list
}case $1 in create)VM_create;;start)VM_start;;stop)VM_stop;;shot)VM_snapshot;;set_ip)VM_set_IP;;shot_back)VM_shot_back;;shot_del)VM_shot_del;;shot_list)VM_shot_list;;list)VM_list;;*)echo "bash $0 {create|start|set_ip|stop|shot|shot_list|shot_back|shot_del|list}"
esac

  

除了 set_ip 这个函数在windows 里面需要单独拿出来放到cmd 窗口使用

host-list.txt表示创建虚拟机的数量,80,81,82表示最后的ip地址第四位

设置IP的脚本

E:\VMS\set_ip.bat

E:\SOFT\VM\vmrun.exe -T ws -gu root -gp 123456 runProgramInGuest  "E:\VMS\Centos7\FDFS-cluster\FDSF-80\FDSF-80.vmx" /bin/bash /root/first.sh 80 FDSF-80
ping -n 5 127.0.0.1 >nul
E:\SOFT\VM\vmrun.exe -T ws -gu root -gp 123456 runProgramInGuest  "E:\VMS\Centos7\FDFS-cluster\FDSF-81\FDSF-81.vmx" /bin/bash /root/first.sh 81 FDSF-81
ping -n 5 127.0.0.1 >nul
E:\SOFT\VM\vmrun.exe -T ws -gu root -gp 123456 runProgramInGuest  "E:\VMS\Centos7\FDFS-cluster\FDSF-82\FDSF-82.vmx" /bin/bash /root/first.sh 82 FDSF-82
ping -n 5 127.0.0.1 >nul

  

4 模拟演示创建,修改ip和主机名

  1. 创建虚拟机

  1. 开启所创建的虚拟机

ok 都启动了

  1. 设置所创建虚拟机的ip 和 主机名

  1. 查看是否修改成功了 
    FAST-80 ,OK

FAST-81,OK

FAST-82,OK

注: 只是为了方便做实验用,方便自己快速搭建环境练习测试

转载于:https://www.cnblogs.com/keme/p/10025549.html

vmrun 批量创建vmware虚拟机相关推荐

  1. PowerCLI批量创建VMware虚拟机器-中文版(转载)

    本文为转载,原文地址 http://www.361way.com/powercli-deploy-vmware/4877.html 为方便阅读中文和代码,使用了一键翻译,复制粘贴大法,并且调整了一点可 ...

  2. ansible创建vmware虚拟机

    ansible创建vmware虚拟机 环境:vmware 虚拟化 需求:如果业务部门一次提几十台甚至几百台虚拟机需求,一个个的手动创建肯定耗时 使用ansible vmware_guest 创建虚拟机 ...

  3. 秒级快速批量创建kvm虚拟机并指定IP地址和主机名

    1. 说明 kvm比起vmware来说最没有的功能就是用模板部署虚拟机的时候可以自定义ip地址,这对于大量创建vm的场景来说你需要一台台vnc的登录改动ip,显然是很累的,最近我就遇到这种场景(大型的 ...

  4. 修改VMware虚拟机网卡MAC地址的方法总结

    修改MAC地址有两种方法: 一.修改vmx配置文件 修改vmx配置文件的两种方法 1.用文本工具(比如记事本或vi)打开vmx配置文件,然后修改一下几行: ethernet0.generatedAdd ...

  5. VMware workstation批量创建虚拟机和自动化安装操作系统(二)

    一. 简述 在上一篇<VMware workstation批量创建虚拟机和自动化安装操作系统(一)>中,主要介绍了VMware workstation自定义创建虚拟机的过程,和一些其他的有 ...

  6. VMware workstation批量创建虚拟机和自动化安装操作系统(一)

    一. 简述 作为从事IT行业运维工作的Linuxer,大多情况下需要在测试环境中部署业务系统并进行测试,在没有足够的计算存储网络条件下,使用虚拟机进行虚拟集群的创建和使用,是一种不错的学习和实践方式. ...

  7. 在VMware Workstation中批量创建上千台虚拟机(上)

    VMware Workstation 是我们经常使用的虚拟机软件,其功能强大,性能较好.大多数用户都会在"图形界面"中创建虚拟机.修改虚拟机配置.添加虚拟机参数,或者使用" ...

  8. vMware 5.5 利用vcenter的powershell 批量创建虚拟机

    vMware 5.5 利用vcenter的powershell 批量创建虚拟机 第一步:登录vcenter服务器,打开powershell,执行C:\Program Files (x86)\VMwar ...

  9. 使用VboxManage批量创建虚拟机

    VirtualBox的安装使用 当下主流的虚拟软件主要有两种:VirtualBox和VMware,本人开始使用虚拟化时选择的是VMware,在window系统中的使用效果很好,但是当转移到Linux系 ...

最新文章

  1. 问题解决-Failed to resolve: com.android.support.constraint:constraint-layout:1.0.0-alpha7
  2. 用VLC读取摄像头产生RTSP流,DSS主动取流转发(一)
  3. 200米外遥测心跳定身份,五角大楼全新黑科技,人脸伪装也没用
  4. python打地鼠游戏代码_妈妈和宝宝在家,自己做了个打地鼠游戏,网友:宝宝笑得好开心...
  5. 工业机器人入门实用教程_机器学习实用入门
  6. 海量数据索引与近似最近邻随记
  7. PHP 接收 UDP包_php只能做网站?基于swoole+websocket开发双向通信应用
  8. could not find driver和PDO drivers = no value
  9. pytorch AUTOGRAD
  10. C++中public/private/protected三种继承方式下基类成员对派生类的可见性探讨
  11. 日本区块链项目Jasmy与索尼VAIO联合发售笔记本电脑
  12. DHCP配置 TFTP服务
  13. 2020 中兴java面试笔试题 (含面试题解析)
  14. 【uniapp公众号分销商城从0到1】手机验证注册登录(04)
  15. 计算机网络图标打不开怎么回事,双击打不开图标怎么办 双击打不开图标解决方法【详解】...
  16. 用c语言做一个五子棋程序,C语言制作简单五子棋游戏
  17. 我的世界服务器自定义怪物怎么用,我的世界完全自定义怪物教程攻略
  18. 今天遇到一个报错信息
  19. VMware:继续使用 Adob​​e Flash 管理您的 vCenter
  20. 启动计算机引导win10,图文详解win10系统电脑开机引导错误的方案

热门文章

  1. keepalived and heartbeat
  2. Bag标签之中的一个行代码实行中文分词实例2
  3. VS Code - Debugger for Chrome调试JavaScript的两种方式
  4. IOS8中SWIFT 弹出框的显示
  5. 记一次 调节有音量界面 上移的bug
  6. mono和monodevelop源码编译安装
  7. JAVA好书之《深入理解Java虚拟机》
  8. 全国首个窄带物联网实验局落户福州 助力智慧城市建设
  9. java Spring 生命周期
  10. Linux下快速分区格式化大于2T大容量存储