天天看點

Esxi自動化配置腳本

記錄一下ESXi自動化配置腳本,腳本功能及腳本如下:

建立站點名稱;

配置IP和vmotion IP及子網路遮罩

配置Vlan

删除預設端口組

增加vSwitch

設定NTP

<code>#####################################################################################################################</code>

<code>##  $FileName: esx_conf.ps1</code>

<code>##  $Version: 1.2</code>

<code>##  $Description: Installing ESXi5, CSC customized</code>

<code>##                v1.1: commentaries added, TST references removed</code>

<code>##        v1.2: NFS volumes renamed, vmnic numbers modified</code>

<code>##        v1.3: Vcenter, dc and cluster deleted   </code>

<code>##  </code>

<code>##  $Author: </code>

<code>##  $CreationDate: 13-March-2012</code>

<code>##  $LastModifiedDate: 21-January-2013</code>

<code>##  $Modified by : </code>

<code># esx_conf.ps1 # </code>

<code># NDSI ESXi Post config #</code>

<code># CSC Customized </code>

<code># Load the VI Toolkit #</code>

<code>if</code> <code>(</code><code>-not</code> <code>(</code><code>Get-PSSnapin</code> <code>| </code><code>Where-Object</code> <code>{</code><code>$_</code><code>.Name </code><code>-eq</code> <code>"VMware.VimAutomation.Core"</code><code>})) </code>

<code>{ </code><code>Add-PSSnapin</code> <code>VMware.VimAutomation.Core } </code>

<code># Variables #</code>

<code># Site trigram to be deployed /!\ NEED TO BE CONFIGURED /!\</code>

<code>$Site_Trigram</code><code>=</code><code>"SWD"</code>

<code># FQDN or IP of ESX server /!\ NEED TO BE CONFIGURED /!\</code>

<code>$newhost</code> <code>= </code><code>"10.68.114.13"</code>

<code># ESX server vMotion IP /!\ NEED TO BE CONFIGURED /!\</code>

<code>$ipvmotion</code> <code>= </code><code>"10.68.114.14"</code>

<code># ESX server vMotion MASK /!\ NEED TO BE CONFIGURED /!\</code>

<code>$netmask0</code> <code>= </code><code>"255.255.254.0"</code>

<code># ESX server VMkernel IP 1 for NFS /!\ NEED TO BE CONFIGURED /!\</code>

<code>$ipnfs1</code> <code>= </code><code>"192.168.160.177"</code>

<code># ESX server VMkernel IP 2 for NFS /!\ NEED TO BE CONFIGURED /!\</code>

<code>$ipnfs2</code> <code>= </code><code>"192.168.161.177"</code>

<code># ESX server VMkernel MASK for NFS /!\ NEED TO BE CONFIGURED /!\</code>

<code>$netmask1</code> <code>= </code><code>"255.255.255.0"</code>

<code># NAS CTRLA Vsphere Vfiler IP 1 /!\ NEED TO BE CONFIGURED /!\</code>

<code># $ipnfs3 = "192.168.162.77"</code>

<code># NAS CTRLA Vsphere Vfiler IP 2 /!\ NEED TO BE CONFIGURED /!\</code>

<code># $ipnfs4 = "192.168.163.77"</code>

<code># NAS CTRLB Vsphere Vfiler IP 1 /!\ NEED TO BE CONFIGURED /!\</code>

<code># $ipnfs5 = "192.168.162.78"</code>

<code># NAS CTRLB Vpshere Vfiler IP 2 /!\ NEED TO BE CONFIGURED /!\</code>

<code># $ipnfs6 = "192.168.163.78"</code>

<code>#AD server name and NAS path </code>

<code>$VM01</code> <code>= </code><code>"SWDNM500"</code>

<code>$VM01_PATH</code> <code>= </code><code>"/vol/NFS_VM30_"</code> <code>+ </code><code>$VM01</code> <code>+ </code><code>"_A000000"</code>

<code># Names need to be set on NFS DataStore</code>

<code># $nfs1 = $Site_Trigram + "_NFS_VM30_" + $VM01 + "_A000000"</code>

<code># $nfs2 = $Site_Trigram + "_NFS_VM31_A000001"</code>

<code># $nfs3 = $Site_Trigram + "_NFS_VM30_B000000"</code>

<code># $nfs4 = $Site_Trigram + "_NFS_VM31_B000001"</code>

<code># VLAN ID need to be tagged on NFS PortGroup</code>

<code>$vlanid1</code> <code>= </code><code>"3099"</code>

<code>$vlanid2</code> <code>= </code><code>"3100"</code>

<code>$vlanid3</code> <code>= </code><code>"3101"</code>

<code># NTP need to be set in ESX server configuration</code>

<code>$ntp1</code> <code>= </code><code>"ntp31.example.com"</code>

<code>$ntp2</code> <code>= </code><code>"ntp32.example.com"</code>

<code># Output log file</code>

<code>$log</code> <code>= </code><code>"c:\esx_conf.log"</code>

<code># start logging #</code>

<code>Start-Transcript</code> <code>-Path </code><code>$log</code>

<code>Write-Host</code> <code>"Variables :"</code>

<code>Write-Host</code>

<code>Write-Host</code> <code>"Esx : "</code> <code>$newhost</code>

<code>Write-Host</code> <code>"IP vmotion : "</code> <code>$ipvmotion</code>

<code>Write-Host</code> <code>"Netmask IP vmotion : "</code> <code>$netmask0</code>

<code>Write-Host</code> <code>"IP NFS-VMWARE-1 : "</code> <code>$ipnfs1</code>

<code>Write-Host</code> <code>"IP NFS-VMWARE-2 : "</code> <code>$ipnfs2</code>

<code>Write-Host</code> <code>"IP nas-a1 NFS1 : "</code> <code>$ipnfs3</code>

<code>Write-Host</code> <code>"IP nas-a1 NFS2 : "</code> <code>$ipnfs4</code>

<code>Write-Host</code> <code>"IP nas-b1 NFS1 : "</code> <code>$ipnfs5</code>

<code>Write-Host</code> <code>"IP nas-b1 NFS2 : "</code> <code>$ipnfs6</code>

<code>Write-Host</code> <code>"Netmask NFS : "</code> <code>$netmask1</code>

<code>Write-Host</code> <code>"VLAN NFS1 : "</code> <code>$vlanid1</code>

<code>Write-Host</code> <code>"VLAN NFS2 : "</code> <code>$vlanid2</code>

<code>Write-Host</code> <code>"VLAN ISCSI : "</code> <code>$vlanid3</code>

<code>Write-Host</code> <code>"Datastore nas-a1 NFS1 : "</code> <code>$nfs1</code>

<code>Write-Host</code> <code>"Datastore nas-a1 NFS2 : "</code> <code>$nfs2</code>

<code>Write-Host</code> <code>"Datastore nas-b1 NFS1 : "</code> <code>$nfs3</code>

<code>Write-Host</code> <code>"Datastore nas-b1 NFS2 : "</code> <code>$nfs4</code>

<code># connect to new host #</code>

<code>Write-Host</code> <code>"Connexion to new host : "</code> <code>$newhost</code>

<code>Connect-VIServer</code> <code>$newhost</code> <code>-User root -Password passw0rd</code>

<code># add vSwitch1 #</code>

<code>Write-Host</code> <code>"Add vSwitch1"</code>

<code>New-VirtualSwitch</code> <code>-VMHost </code><code>$newhost</code> <code>-Name vSwitch1 -NumPorts 128 -Nic vmnic1,vmnic3 -Confirm:</code><code>$false</code>

<code># delete default Port Group #</code>

<code>Write-Host</code> <code>"Delete default VM Network port group"</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"VM Network"</code> <code>| </code><code>Remove-VirtualPortGroup</code> <code>-Confirm:</code><code>$false</code>

<code># add vmnic2 to vSwitch0 #</code>

<code>Write-Host</code> <code>"Add vmnic2 to vSwitch0"</code>

<code>Get-VirtualSwitch</code> <code>-VMHost </code><code>$newhost</code> <code>-name vSwitch0 | </code><code>Set-VirtualSwitch</code> <code>-Nic vmnic0,vmnic2 -confirm:</code><code>$false</code>

<code># add vmotion #</code>

<code>Write-Host</code> <code>"Add vmotion port group"</code>

<code>New-VMHostNetworkAdapter</code> <code>-VMHost </code><code>$newhost</code> <code>-PortGroup VMOTION -VirtualSwitch vSwitch0 -IP </code><code>$ipvmotion</code> <code>-SubnetMask </code><code>$netmask0</code> <code>-VMotionEnabled:</code><code>$true</code> <code>-Confirm:</code><code>$false</code>

<code># add NFS #</code>

<code>Write-Host</code> <code>"Add NFS1 and NFS2 port groups"</code>

<code>New-VMHostNetworkAdapter</code> <code>-VMHost </code><code>$newhost</code> <code>-PortGroup NFS-VMWARE-1 -VirtualSwitch vSwitch0 -IP </code><code>$ipnfs1</code> <code>-SubnetMask </code><code>$netmask1</code> <code>-Confirm:</code><code>$false</code>

<code>New-VMHostNetworkAdapter</code> <code>-VMHost </code><code>$newhost</code> <code>-PortGroup NFS-VMWARE-2 -VirtualSwitch vSwitch0 -IP </code><code>$ipnfs2</code> <code>-SubnetMask </code><code>$netmask1</code> <code>-Confirm:</code><code>$false</code>

<code># configure NFS vlan id #</code>

<code>Write-Host</code> <code>"Configure NFS1 and NFS2 vlan id"</code>

<code>Get-VirtualPortgroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"NFS-VMWARE-1"</code> <code>| </code><code>Set-VirtualPortGroup</code> <code>-VLanId </code><code>$vlanid1</code> <code>-confirm:</code><code>$false</code>

<code>Get-VirtualPortgroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"NFS-VMWARE-2"</code> <code>| </code><code>Set-VirtualPortGroup</code> <code>-VLanId </code><code>$vlanid2</code> <code>-confirm:</code><code>$false</code>

<code># configure Nic Teaming #</code>

<code>Write-Host</code> <code>"Configure Nic teaming"</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"Management Network"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicActive vmnic0 -Confirm:</code><code>$false</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"Management Network"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicStandby vmnic2 -Confirm:</code><code>$false</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"VMOTION"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicActive vmnic2 -Confirm:</code><code>$false</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"VMOTION"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicStandby vmnic0 -Confirm:</code><code>$false</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"NFS-VMWARE-1"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicActive vmnic0</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"NFS-VMWARE-1"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicStandby vmnic2 -Confirm:</code><code>$false</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"NFS-VMWARE-2"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicActive vmnic2 -Confirm:</code><code>$false</code>

<code>Get-VirtualPortGroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name </code><code>"NFS-VMWARE-2"</code> <code>| </code><code>Get-NicTeamingPolicy</code> <code>| </code><code>Set-NicTeamingPolicy</code> <code>-MakeNicStandby vmnic0 -Confirm:</code><code>$false</code>

<code># add VM Port Group to vSwitch1 #</code>

<code>Write-Host</code> <code>"Add VMS port group"</code>

<code>Get-VirtualSwitch</code> <code>-VMHost </code><code>$newhost</code> <code>-Name vSwitch1 | </code><code>New-VirtualPortGroup</code> <code>-Name VMS -Confirm:</code><code>$false</code>

<code># add ISCSI Port Group to vSwitch1 #</code>

<code>Write-Host</code> <code>"Add ISCSI port group"</code>

<code>Get-VirtualSwitch</code> <code>-VMHost </code><code>$newhost</code> <code>-Name vSwitch1 | </code><code>New-VirtualPortGroup</code> <code>-Name ISCSI -Confirm:</code><code>$false</code>

<code>Get-VirtualPortgroup</code> <code>-VMHost </code><code>$newhost</code> <code>-Name ISCSI | </code><code>Set-VirtualPortGroup</code> <code>-VLanId </code><code>$vlanid3</code> <code>-confirm:</code><code>$false</code>

<code># add NTP servers #</code>

<code>Write-Host</code> <code>"Add NTP servers"</code>

<code>Add-VmHostNtpServer</code> <code>-VMHost </code><code>$newhost</code> <code>-NtpServer </code><code>$ntp1</code> <code>-Confirm:</code><code>$false</code>

<code>Add-VmHostNtpServer</code> <code>-VMHost </code><code>$newhost</code> <code>-NtpServer </code><code>$ntp2</code> <code>-Confirm:</code><code>$false</code>

<code># Creation NFS datastores #</code>

<code>Write-Host</code> <code>"Creation NFS datastores"</code>

<code># New-Datastore -Nfs -VMHost $newhost -Name $nfs1 -Path $VM01_PATH -NfsHost $ipnfs3</code>

<code># New-Datastore -Nfs -VMHost $newhost -Name $nfs2 -Path /vol/NFS_VM31_A000001 -NfsHost $ipnfs4</code>

<code># New-Datastore -Nfs -VMHost $newhost -Name $nfs3 -Path /vol/NFS_VM30_B000000 -NfsHost $ipnfs5</code>

<code># New-Datastore -Nfs -VMHost $newhost -Name $nfs4 -Path /vol/NFS_VM31_B000001 -NfsHost $ipnfs6</code>

<code># end logging #</code>

<code>Stop-Transcript</code>

本文轉自 安安安安森  51CTO部落格,原文連結:http://blog.51cto.com/smallc/1692374,如需轉載請自行聯系原作者

繼續閱讀