Post date: Feb 03, 2012 11:4:13 PM
cls
#variabelen
$hostname = Read-Host "Type de naam in van de te configureren ESX-host"
$ntpserver = "ntp.domain.local.com"
$esxdomein = "domain.local"
$gethostnameip = Import-Csv c:\script\vmware\hosts.csv | where-object {$_.hostname -eq $hostname}
$iscsiip = Import-Csv c:\script\vmware\iscsi_ip.csv | where-object {$_.hostname -eq $hostname}
$HostnameIP = $gethostnameip.ipnummer
$vmotionip = $gethostnameip.vmotionip
$vmkip1 = $iscsiip.iscsi1
$vmkip2 = $iscsiip.iscsi2
$vmkip3 = $iscsiip.iscsi3
$vmkip4 = $iscsiip.iscsi4
#vaste waarden
#connecteren met de te configureren esx-host
Connect-VIServer $HostnameIP -User root -Password xxxxxxxxx
#hostname en domein instellen
$esxcli = Get-EsxCli
$esxcli.system.hostname.set($esxdomein,$null,$hostname)
#Standaard aangemaakte portgroup VM Network verwijderen
$DefaultPG = Get-VirtualPortgroup -Name 'VM Network' -ErrorAction SilentlyContinue
Remove-VirtualPortGroup -VirtualPortGroup $DefaultPG -Confirm:$false -ErrorAction SilentlyContinue
#Vmnic toevoegen aan vSwitch0
Set-VirtualSwitch -VirtualSwitch vSwitch0 -Nic vmnic0,vmnic6 -Confirm:$false
#vMotion toevoegen aan vSwitch0
New-VirtualPortGroup -Name vMotion -VirtualSwitch vSwitch0 -VLanId 240
New-VMHostNetworkAdapter -VirtualSwitch vSwitch0 -PortGroup vMotion -IP $vmotionip -VMotionEnabled:$true -SubnetMask 255.255.255.0 -ErrorAction SilentlyContinue
## Definiëren vSwitch1
New-VirtualSwitch -Name vSwitch1 -nic vmnic1,vmnic2 -NumPorts 256 -ErrorAction SilentlyContinue
# Definiëren NicTeamingPolicy
$policy = Get-VirtualSwitch -Name vSwitch1 | Get-NicTeamingPolicy
$policy | Set-NicTeamingPolicy -LoadBalancingPolicy LoadBalanceIP
# Definiëren Portgroepen
New-VirtualPortGroup -Name ServerLan -VirtualSwitch vSwitch1
New-VirtualPortGroup -Name "VLAN50" -VirtualSwitch vSwitch1 -VLanId 50
New-VirtualPortGroup -Name "VLAN100" -VirtualSwitch vSwitch1 -VLanId 100
New-VirtualPortGroup -Name "VLAN150" -VirtualSwitch vSwitch1 -VLanId 150
New-VirtualPortGroup -Name "VLAN200" -VirtualSwitch vSwitch1 -VLanId 200
# Definiëren vSwitch2
New-VirtualSwitch -Name vSwitch2 -nic vmnic3,vmnic4,vmnic7,vmnic8 -NumPorts 64 -ErrorAction SilentlyContinue
# Definiëren NicTeamingPolicy
$policy = Get-VirtualSwitch -Name vSwitch2 | Get-NicTeamingPolicy
$policy | Set-NicTeamingPolicy -LoadBalancingPolicy LoadBalanceIP
# Definiëren Portgroepen
#iSCSI1
New-VirtualPortGroup -Name iSCSI1 -VirtualSwitch vSwitch2 -VLanId 250 -ErrorAction SilentlyContinue
$policy = Get-VirtualSwitch -Name vSwitch2 | Get-VirtualPortGroup -Name iSCSI1 | Get-NicTeamingPolicy
$policy | Set-NicTeamingPolicy -MakeNicUnused vmnic7,vmnic8,vmnic4 -MakeNicActive vmnic3
#iSCSI2
New-VirtualPortGroup -Name iSCSI2 -VirtualSwitch vSwitch2 -VLanId 250 -ErrorAction SilentlyContinue
$policy = Get-VirtualSwitch -Name vSwitch2 | Get-VirtualPortGroup -Name iSCSI2 | Get-NicTeamingPolicy
$policy | Set-NicTeamingPolicy -MakeNicUnused vmnic7,vmnic8,vmnic3 -MakeNicActive vmnic4
#iSCSI3
New-VirtualPortGroup -Name iSCSI3 -VirtualSwitch vSwitch2 -VLanId 250 -ErrorAction SilentlyContinue
$policy = Get-VirtualSwitch -Name vSwitch2 | Get-VirtualPortGroup -Name iSCSI3 | Get-NicTeamingPolicy
$policy | Set-NicTeamingPolicy -MakeNicUnused vmnic4,vmnic8,vmnic3 -MakeNicActive vmnic7
#iSCSI4
New-VirtualPortGroup -Name iSCSI4 -VirtualSwitch vSwitch2 -VLanId 250 -ErrorAction SilentlyContinue
$policy = Get-VirtualSwitch -Name vSwitch2 | Get-VirtualPortGroup -Name iSCSI4 | Get-NicTeamingPolicy
$policy | Set-NicTeamingPolicy -MakeNicUnused vmnic7,vmnic4,vmnic3 -MakeNicActive vmnic8
#Omzetten vm network naar vmk
$vs = Get-VirtualSwitch -Name "vSwitch2" -ErrorAction SilentlyContinue
New-VMHostNetworkAdapter -VirtualSwitch $vs -PortGroup iSCSI1 -IP $vmkip1 -SubnetMask 255.255.255.0 -ErrorAction SilentlyContinue
New-VMHostNetworkAdapter -VirtualSwitch $vs -PortGroup iSCSI2 -IP $vmkip2 -SubnetMask 255.255.255.0 -ErrorAction SilentlyContinue
New-VMHostNetworkAdapter -VirtualSwitch $vs -PortGroup iSCSI3 -IP $vmkip3 -SubnetMask 255.255.255.0 -ErrorAction SilentlyContinue
New-VMHostNetworkAdapter -VirtualSwitch $vs -PortGroup iSCSI4 -IP $vmkip4 -SubnetMask 255.255.255.0 -ErrorAction SilentlyContinue
# enable iSCSI adapter
Get-VMHostStorage -VMHost $HostnameIP | Set-VMHostStorage -SoftwareIScsiEnabled $True -ErrorAction SilentlyContinue
#Lees het HBA nummer van de iSCSI Software Adapter
$HBANumber = Get-VMHostHba -VMHost $HostnameIP -Type iSCSI | %{$_.Device}
#Laat PowerCLI gebruik maken van esxcli commandos
$esxcli = Get-EsxCli
#vKernel Nummers iSCSI
$vmk1nummer = Get-VMHostNetworkAdapter | Where-object { $_.IP -match $vmkip1 } | %{ $_.Name }
$vmk2nummer = Get-VMHostNetworkAdapter | Where-object { $_.IP -match $vmkip2 } | %{ $_.Name }
$vmk3nummer = Get-VMHostNetworkAdapter | Where-object { $_.IP -match $vmkip3 } | %{ $_.Name }
$vmk4nummer = Get-VMHostNetworkAdapter | Where-object { $_.IP -match $vmkip4 } | %{ $_.Name }
#Binds VMKernel ports aan de iSCSI Software Adapter HBA
$EsxCli.iscsi.networkportal.add($HbANumber,$null,$vmk1nummer)
$EsxCli.iscsi.networkportal.add($HbANumber,$null,$vmk2nummer)
$EsxCli.iscsi.networkportal.add($HbANumber,$null,$vmk3nummer)
$EsxCli.iscsi.networkportal.add($HbANumber,$null,$vmk4nummer)
#timeserver configuratie
$arrNTPList = Get-VMHostNtpServer -VMHost $HostnameIP
Remove-VMHostNtpServer -VMHost $HostnameIP -NtpServer $arrNTPList -Confirm:$false -ErrorAction SilentlyContinue
Add-VMHostNtpServer -VMHost $HostnameIP -NtpServer $ntpserver -Confirm:$false
Set-VMHostService -HostService (Get-VMHostservice -VMHost (Get-VMHost $HostnameIP) | Where-Object {$_.key -eq "ntpd"}) -Policy "Automatic"
Get-VmhostFirewallException -VMHost $HostnameIP -Name "NTP Client" | Set-VMHostFirewallException -enabled:$true
$ntpd = Get-VMHostService -VMHost $HostnameIP | where {$_.Key -eq 'ntpd'}
Restart-VMHostService $ntpd -Confirm:$false
#reboot ESX host
Get-VMHost $HostnameIP |%{Get-View $_.ID} | %{$_.RebootHost_Task($TRUE)}
#disconnect
Disconnect-VIServer -Confirm:false