使用方法:
1.将UltraISO.exe+iso.bat+adsl.txt+创建虚拟机改IP.PS1 拷贝到服务器C盘根目录
2.在服务器中安装UltraISO.exe ,安装目录使用默认路径,不要修改!
3.使用PowerShell打开脚本文件,修改模板文件路径、存放虚拟机的路径、网卡名称/速率、IP信息(只允许 写IP,不要加其他信息)、机器配置/数量等信息
4.开始执行脚本,批量创建虚拟机并自动修改IP地址
5.使用PassPort软件,结合EXCEL批量 导入映射信息
6.测远程连接,虚拟机创建完成
1.保证机器有网
2.安装环境
pip install PyExecJs 注意:Successfully installed PyExecJs-1.5.1 six-1.12.0
yum install -y wget
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz && mkdir -p /usr/local/lib/nodejs
tar -xJvf node-v10.15.3-linux-x64.tar.xz -C /usr/local/lib/nodejs/
ln -s /usr/local/lib/nodejs/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/
ln -s /usr/local/lib/nodejs/node-v10.15.3-linux-x64/bin/node /usr/local/bin/
node -v
3.删除网卡和拨号信息
#vi /etc/ppp/chap-secrets #脚本第一行是回车不需要用这个
vi /etc/sysconfig/network-scripts/ifcfg-eth1
4.上传gaiip.sh 到/
chmod +x gaiip.sh
history -c
init 0
CentOS母盘制作流程:
1.修改系统网卡配置文件,将内网网卡配置文件中的"IPADDR=192.168.2.2"该行删除掉
2.将gaiip.sh 上传到系统/目录
3.添加gaiip.sh执行权限
chmod +x /gaiip.sh
4.编辑开机启动项
vi /etc/rc.d/rc.local
添加一行脚本路径
/gaiip.sh
添加开机启动项的执行权限
chmod +x /etc/rc.d/rc.local
5.提前安装好dos2unix
yum install -y dos2unix
6.将虚拟机关机,该虚拟机的磁盘文件即为可用来制作自动创建虚拟机的系统母盘
自动改IP脚本gaiip.sh说明:
挂载光盘
mount /dev/cdrom /mnt
拷贝IP信息到/根目录
cp /mnt/ip.txt /ip.txt
修改字符集信息
sed -i 's/^\xEF\xBB\xBF//g' /ip.txtg
dos2unix /ip.txt
写入IP信息
cat /ip.txt >>/etc/sysconfig/network-scripts/ifcfg-eth1
重启网络服务
service network restart
弹出ISO文件
eject /dev/cdrom
gaiip.sh
#!/bin/bash
mount /dev/cdrom /mnt
cp /mnt/ip.txt /ip.txt
cp /mnt/autoad.sh /autoad.sh
sed -i 's/^\xEF\xBB\xBF//g' /ip.txt
sed -i 's/^\xEF\xBB\xBF//g' /autoad.sh
dos2unix /ip.txt
dos2unix /autoad.sh
cat /ip.txt >>/etc/sysconfig/network-scripts/ifcfg-eth1
chmod 777 /autoad.sh
sh /autoad.sh
service network restart
rm -rf /ip.txt
rm -rf /autoad.sh
eject /dev/cdrom
rm -rf /gaiip.sh
init 6
批量创建虚拟机自动改IP和主机名(差异磁盘)
#---------------------------批量创建虚拟机脚本---------------------
#母盘位置:注意不要放C盘!!
$MasterDiskPath="d:\synew.vhdx"
#虚拟机存放位置
$VHDPath="d:\synewvhd\"
#虚拟机IP初始信息
$IP="192.168.81."
#虚拟机IP开始值
$IP_START=2
#创建虚拟机的数量
$IP_ZENJIA=2
#虚拟机网卡名称
$NetworkName1="pppoe"
$NetworkName2="nat"
#拨号DNS+密码
$DNS1="223.5.5.5"
$DNS2="114.114.114.114"
#虚拟机cpu核数
$LogicPrecesserCount=2
#虚拟机内存
$MomeryCount=2GB
#----------------------------下面部分不用修改------------------------
$IP_END=$IP_START+$IP_ZENJIA - 1
for($i=$IP_START;$i -le$IP_END;$i++) {
$VMDIR = $VHDPath + $IP +$I
#创建虚拟机磁盘存放的文件夹
mkdir $VMDIR
#虚拟机名称
$VMName = $IP + $i + ".vhdx"
#虚拟机文件所在的完整路径
$VMCFDIR = $VMDIR + "\" + $VMName
#创建差异磁盘到虚拟机指定的目录下
#Copy-Item $MasterDiskPath $VMCFDIR
New-VHD -ParentPath $MasterDiskPath -Path $VMCFDIR -Differencing
#读取该虚拟机指定的拨号信息
$PPPOE=(Get-Content C:\adsl.txt -TotalCount $I)[-1]
$PPPOEWD=(Get-Content C:\mm.txt -TotalCount $I)[-1]
#$vlan=(Get-Content C:\vlan.txt -TotalCount $I)[-1]
$vmhost=(Get-Content C:\vmhost.txt -TotalCount $I)[-1]
#创建一个虚拟机
$HYName = "wangdun-"+$vmhost + "/" + $IP + $i + "/" + $PPPOE + "/" + $PPPOEWD
New-VM -Name $HYName -path $VMDIR -MemoryStartupBytes $MomeryCount -VHDPath $VMCFDIR -SwitchName $NetworkName1
#到虚拟机磁盘目录
cd $VMDIR
#新建内网网卡信息
New-Item "ip.txt" -type File
#写入内网网卡信息到文件
"IPADDR=$IP$I" |Out-File ip.txt -encoding utf8
#新建自动拨号脚本
New-Item "autoad.sh" -type File
#编辑自动拨号脚本
"pppoe-setup <<EOF" |Add-Content autoad.sh -encoding utf8
" " |Add-Content autoad.sh -encoding utf8
"$PPPOE" |Add-Content autoad.sh -encoding utf8
"eth0" |Add-Content autoad.sh -encoding utf8
"no" |Add-Content autoad.sh -encoding utf8
"$DNS1" |Add-Content autoad.sh -encoding utf8
"$DNS2" |Add-Content autoad.sh -encoding utf8
"$PPPOEWD" |Add-Content autoad.sh -encoding utf8
"$PPPOEWD" |Add-Content autoad.sh -encoding utf8
"yes" |Add-Content autoad.sh -encoding utf8
"0" |Add-Content autoad.sh -encoding utf8
"yes" |Add-Content autoad.sh -encoding utf8
"y" |Add-Content autoad.sh -encoding utf8
"EOF" |Add-Content autoad.sh -encoding utf8
"sed -i 's/localhost.localdomain/wangdun-$vmhost/g' /etc/hostname" |Add-Content autoad.sh -encoding utf8
#拷贝生成iso的脚本到虚拟机目录
Copy-Item c:/iso.bat $VMDIR
#设置UltraISO环境变量
$Env:path=$Env:Path+";C:\Program Files (x86)\UltraISO"
#执行生成iso脚本
cmd /c iso.bat
#虚拟机挂载iso文件
set-VMDvdDrive -VMName $HYName -path $VMDIR\ip.iso
#增加一个网卡适配器并挂载网卡
Add-VMNetworkAdapter $HYName -Name network2
Connect-VMNetworkAdapter $HYName -Name network2 $NetworkName2
#修改拨号网卡的vlan
#Set-VMNetworkAdaptervlan -VMName $HYName -VMNetworkAdapterName 网络适配器 -Access -VlanID $vlan
#设置虚拟机内核数量
Set-VMProcessor $HYName -Count $LogicPrecesserCount
#设置动态内存
#Set-VMMemory $HYName -StartupBytes 2048MB
#Set-VMMemory $HYName -DynamicMemoryEnabled $true -MaximumBytes 2048MB -MinimumBytes 800MB
#设置所有网卡的速率为20mb
#Set-VMNetworkAdapter –VMName $HYName -MaximumBandwidth 20000000
#删除网卡
#Remove-VMNetworkAdapter -VMName $HYName -VMNetworkAdapterName network2
#开启路由器保护功能
Set-VMNetworkAdapter $HYName -RouterGuard On
#启动虚拟朿
Start-VM -Name $HYName
}
hyper-v批量创建虚拟机不改IP
#虚拟机存放路径
$VHDPath="d:\suanya\"
#虚拟机命名规范
$IP="suanya-192.168.109."
#虚拟机网卡名称
$NetworkName1="hg_vpn"
$NetworkName2="nat"
#虚拟机cpu核数
$LogicPrecesserCount=2
#虚拟机内存
$MomeryCount=2GB
#模板位置
$MasterDiskPath="C:\192.168.109.2.vhdx"
#建立虚拟机数量,第一个数字是开始IP,第二个是数字是结束IP
for($i=2;$i -le35;$i++) {
$VMDIR = $VHDPath + $IP +$I
#创建VM文件夹
mkdir $VMDIR
#虚拟机名称
$VMName = $IP + $i + ".vhdx"
#虚拟机文件完整路径
$VMCFDIR = $VMDIR + "\" + $VMName
#拷贝母盘到虚拟机存放的目录下
Copy-Item $MasterDiskPath $VMCFDIR
#创建一个虚拟机
$HYName = $IP + $i
New-VM -Name $HYName -path $VMDIR -MemoryStartupBytes $MomeryCount -VHDPath $VMCFDIR -SwitchName $NetworkName1
#增加一个网卡适配器并挂载网卡
Add-VMNetworkAdapter $HYName -Name network2
Connect-VMNetworkAdapter $HYName -Name network2 $NetworkName2
#设置虚拟机内核数量
Set-VMProcessor $HYName -Count $LogicPrecesserCount
#设置所有网卡的速率为10mb
Set-VMNetworkAdapter –VMName $HYName -MaximumBandwidth 10000000
#删除网卡
#Remove-VMNetworkAdapter -VMName $HYName -VMNetworkAdapterName network2
#开启路由器保护功能
Set-VMNetworkAdapter $HYName -RouterGuard On
#启动虚拟朿
#Start-VM -Name $HYName
}
hyper-v中批量开启MAC欺骗
#虚拟机命名规范
$IP="192.168.236."
#建立虚拟机数量,第一个数字是开始IP,第二个是数字是结束IP
for($i=2;$i -le51;$i++) {
#读取该虚拟机指定的拨号信息
$PPPOE=(Get-Content C:\adsl.txt -TotalCount $I)[-1]
$HYName = $IP + $i + "/" + $PPPOE
#启用MAC欺骗
Set-VMNetworkAdapter -VMName $HYName -MAC On
}
hyper-v中批量设置网卡速率
$IP="192.168.2."
#虚拟机网卡名称
for($i=70;$i -le70;$i++) {
$HYName = $IP + $i
#设置所有网卡的速率为10mb
Set-VMNetworkAdapter –VMName $HYName -MaximumBandwidth 10000000
}
hyper-v中批量修改网卡挂载
$IP="wl-ez-192.168.6."
#虚拟机网卡名称
$NetworkName2="beiyong1"
for($i=102;$i -le102;$i++) {
$HYName = $IP + $i
Connect-VMNetworkAdapter $HYName -Name 网络适配器 $NetworkName2
}
hyper-v中批量修改网卡信息
#虚拟机命名规范
$IP="192.168.126."
#虚拟机网卡名称
$wangka="tzpppoe2"
#建立虚拟机数量,第一个数字是开始IP,第二个是数字是结束IP
for($i=2;$i -le2;$i++) {
#读取该虚拟机指定的拨号信息
$PPPOE=(Get-Content C:\adsl.txt -TotalCount $I)[-1]
$HYName = $IP + $i + "/" + $PPPOE
Connect-VMNetworkAdapter $HYName -Name 网络适配器 $wangka
}
hyper-v中批量增加网卡并挂载
$IP="192.168.2."
#虚拟机网卡名称
$NetworkName2="jzpppoe"
for($i=123;$i -le141;$i++) {
$HYName = $IP + $i
#增加一个网卡适配器并挂载网卡
Add-VMNetworkAdapter $HYName -Name network2
Connect-VMNetworkAdapter $HYName -Name network2 $NetworkName2
}