http://honglus.blogspot.com/2010/10/vsphere-powercli-script-to-clone-and.html
The script can clone Linux and assign ip addresses to multiple adapters.
There are 2 scripts
discover-info.ps1 Discovery information of target viserver/ESX host and generate template file to be used for clonevm.ps1
vmclone.ps1 clone after read information from template file generated by discover-info.ps1 script
The scripts has been tested in VMware vSphere PowerCLI 4.0 for VMs in ESX 3.5/ESX4.0 managed by Virtual Center Server.
Scripts in Action
PowerCLI # D:\Temp> .\discover-info.ps1Discovered ESX hosts:esx01 esx02
Please enter target ESX hostname: esx01
..
Template file: vmdata.txt has been generated. Edit the file then run 'clonevm.ps1 -f file-name' to start cloning
PowerCLI # D:\Temp> cat vmdata.txt (after customization)
============
#Discovered information
#PortGroups='Service Console' 'vlan-01' 'vlan-02'
#Folders='host' 'Discovered Virtual Machine' 'Datacenters' 'vm'
#DataStores= 'nfs_storage' 'esx01:storage1'
#resourcepools=Name: Resources ID:ResourcePool-resgroup-7 Name: Resources ID:ResourcePool-resgroup-65
####----
####----
Customize your VM values using the template
esxhost=esx01
##Resource pool id is NOT required for using virtual machine as source, but IS required for using template as source
#resourcepoolid=
#vm means Virtual Machine; vt means template ( resourcepoolid is required for vt)
SrcName=vm,linuxtemplate
DstName=pstest1
##Use vm as folder if no user folders defined
Folder=vm
DataStore=nfs_storage
##Gateway is optional, enter - to skip this value
##Networkadapter type is optional (Auto choosen for guest OS) , enter - to skip this value
##Supported adapter types: e.g e1000, Flexible, Vmxnet, EnhancedVmxnet
Network=EnhancedVmxnet,vlan-01 ,172.19.1.1,255.255.248.0,172.19.1.10 ; -,vlan-02,172.20.1.1,255.255.255.0,-
DNS=10.1.1.1,10.1.1.2
Domain=example.com
#Poweron=yes
PowerCLI # D:\Temp> .\clonevm.ps1 -f .\vmdata.txt
==> Retrieving info for source VM: linuxtemplate
==> Starting clone process ...
4% 10% 16% 21% 27% 33% 38% 45% 51% 57% 62% 68% 74% 79% 85% 91% %
Completed Task: Task-task-2366
==> Checking new VM ...
Name PowerState Num CPUs Memory (MB)
pstest1 PoweredOff 1 4096
==> Removing existing network adapters ...
==> Adding 2 new network adapters ...
..
==> Customizing guest OS ...
%
Completed Task: Task-task-2370
==> Checking new VM ...
pstest1 PoweredOff 1 4096