Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Variables to be used within the script.
- [CmdletBinding()]
- $NSXUsername = "admin"
- $NSXPassword = "VMware1!"
- $uriP = "https://HQ-NSX-01a.nsx.gss"
- # Start time.
- $startclock = (Get-Date)
- Write-Host -BackgroundColor:Black -ForegroundColor:Green "Hello"
- Write-Host -BackgroundColor:Black -ForegroundColor:Green "This script will help you to automate a full NSX environment deployment"
- Write-Host -BackgroundColor:Black -ForegroundColor:Green "FULL NSX Tier Deployment for Single-VC is starting, This Deployment proccess will take an average of 60 min
- ========================================================================================
- "
- # Create NSX authorization string and store in $head and used in API Calls
- # $nsxcreds = New-Object System.Management.Automation.PSCredential $NSXUsername,$NSXPassword
- $auth = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($NSXUsername + ":" + $NSXPassword))
- $head = @{"Authorization"="Basic $auth"}
- # Allow untrusted SSL certs else will error out
- add-type @"
- using System.Net;
- using System.Security.Cryptography.X509Certificates;
- public class TrustAllCertsPolicy : ICertificatePolicy {
- public bool CheckValidationResult(
- ServicePoint srvPoint, X509Certificate certificate,
- WebRequest request, int certificateProblem) {
- return true;
- }
- }
- "@
- [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
- ################
- #Start of Script
- ################
- ###########################################
- # Checking the current deployed NSX Version
- ###########################################
- Write-Host -BackgroundColor:Black -ForegroundColor:Green " Checking the current deployed version of the NSX
- "
- $r = Invoke-WebRequest -Uri "$uriP/api/1.0/appliance-management/global/info" -Method:Get -Headers $head -ContentType "application/xml" -ErrorAction:Stop -TimeoutSec 60
- $nsxbn = ([xml]$r.Content).globalInfo.versionInfo.buildNumber
- if ($nsxbn -match "2691049") {$nsxcv = "6.1.4"}
- elseif ($nsxbn -match "3102213") {$nsxcv = "6.1.5"}
- elseif ($nsxbn -match "3615148") {$nsxcv = "6.1.6"}
- elseif ($nsxbn -match "3949567") {$nsxcv = "6.1.7"}
- elseif ($nsxbn -match "2986609") {$nsxcv = "6.2.0"}
- elseif ($nsxbn -match "3300239") {$nsxcv = "6.2.1"}
- elseif ($nsxbn -match "3496286") {$nsxcv = "6.2.1a"}
- elseif ($nsxbn -match "3604087") {$nsxcv = "6.2.2"}
- elseif ($nsxbn -match "3638734") {$nsxcv = "6.2.2a"}
- elseif ($nsxbn -match "3755950") {$nsxcv = "6.2.2b"}
- elseif ($nsxbn -match "3979471") {$nsxcv = "6.2.3"}
- elseif ($nsxbn -match "4167369") {$nsxcv = "6.2.3a"}
- elseif ($nsxbn -match "4287432") {$nsxcv = "6.2.3b"}
- elseif ($nsxbn -match "4292526") {$nsxcv = "6.2.4"}
- elseif ($nsxbn -match "4818372") {$nsxcv = "6.2.5"}
- elseif ($nsxbn -match "4977495") {$nsxcv = "6.2.6"}
- elseif ($nsxbn -match "5007049") {$nsxcv = "6.3.0"}
- elseif ($nsxbn -match "5124716") {$nsxcv = "6.3.1"}
- else {
- Write-host -BackgroundColor:Black -ForegroundColor:Red " Unable to retrieve the NSX version, This is either due to the current version is unknown to this script or the NSX Manager is powered off. Please check and try again."
- exit
- }
- Write-Host -BackgroundColor:Black -ForegroundColor:Green " Current version of NSX deployed and to be upgraded is $nsxcv
- "
- <?xml version="1.0" encoding="UTF-8"?>
- <globalInfo>
- <currentLoggedInUser>admin</currentLoggedInUser>
- <versionInfo>
- <majorVersion>6</majorVersion>
- <minorVersion>1</minorVersion>
- <patchVersion>5</patchVersion>
- <buildNumber>3102213</buildNumber> <<<--- this is my match
- </versionInfo>
- </globalInfo>
- Cannot convert value "{"currentLoggedInUser":"admin","versionInfo":{"majorVersion":"6","minorVersion":"1","patchVersion":"5","buildNumber":"3102213"}}"
- to type "System.Xml.XmlDocument". Error: "The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong
- type."
- At C:UsersAdministratorDesktopScripts FolderNSX-Auto-Upgrade-Single.ps1:68 char:2
- + $nsxbn = ([xml]$r.Content).globalInfo.versionInfo.buildNumber
- + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- + CategoryInfo : InvalidArgument: (:) [], RuntimeException
- + FullyQualifiedErrorId : InvalidCastToXmlDocument
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement