update
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
$servers = @"
|
||||
itdvmbisvdi05lo.nd.gov
|
||||
itdvmbisvdi06lo.nd.gov
|
||||
"@
|
||||
$servers = ConvertTo-Array -MultiLineString $servers
|
||||
|
||||
# validate DNS is configured
|
||||
ForEach($server in $servers){
|
||||
Resolve-DnsName -Name $server
|
||||
}
|
||||
|
||||
#ServerHardware.mpHostInfo.mpIpAddresses
|
||||
|
||||
# requires powershell 5.1 as of 2023/02/09
|
||||
# Generate CSRs
|
||||
ForEach ($server in $servers) {
|
||||
$csr = $Null
|
||||
$connection = Connect-HPEiLO $server -Credential $iLOCred -DisableCertificateAuthentication
|
||||
$FQDN = $connection.Hostname
|
||||
If($FQDN -notlike "itdvm*"){
|
||||
$FQDN = ((Get-HPEiLOServerInfo -Connection $connection).ServerName.split('.')[0] + 'lo' + '.nd.gov')
|
||||
}
|
||||
$Hostname = $FQDN.split('.')[0]
|
||||
|
||||
Start-HPEiLOCertificateSigningRequest -Connection $connection -State "North Dakota" -Country "US" -City "Bismarck" -Organization "State of North Dakota" -OrganizationalUnit "NDIT" -CommonName $FQDN
|
||||
|
||||
do {
|
||||
$csr = (Get-HPEiLOCertificateSigningRequest -Connection $connection -ErrorAction SilentlyContinue).CertificateSigningRequest.TrimEnd()
|
||||
Write-Warning ((Get-Date).tostring() + " pausing for 5 seconds")
|
||||
Start-Sleep -Seconds 5
|
||||
} while ( $csr -eq $null )
|
||||
$csr | Set-Content "D:\iLO\CSRs\$FQDN-csr.txt"
|
||||
Disconnect-HPEiLO -Connection $connection
|
||||
}
|
||||
|
||||
$CsrList = [System.Collections.ArrayList]@()
|
||||
ForEach($server in $servers){
|
||||
$obj=[PSCustomObject]@{
|
||||
'Server' = $Server
|
||||
'CSR' = (Get-Content "D:\iLO\CSRs\$server-csr.txt" -Raw);
|
||||
}
|
||||
|
||||
$null = $CsrList.Add($obj)
|
||||
}
|
||||
|
||||
$CsrList | group-object CSR
|
||||
# If any appear with count not equal to 1, something is broken
|
||||
|
||||
|
||||
|
||||
|
||||
ForEach ($server in $servers){
|
||||
Write-Warning "$server csr to clipboard"
|
||||
Get-Content "D:\iLO\CSRs\$server-csr.txt" | Set-Clipboard
|
||||
Pause
|
||||
}
|
||||
|
||||
|
||||
ForEach ($server in $servers){
|
||||
$certfile = $Null
|
||||
$cert = $Null
|
||||
|
||||
$connection = Connect-HPEiLO $server -Credential $iloCred -DisableCertificateAuthentication
|
||||
$FQDN = $connection.Hostname
|
||||
If($FQDN -notlike "itdvm*"){
|
||||
$FQDN = ((Get-HPEiLOServerInfo -Connection $connection).ServerName.split('.')[0] + 'lo' + '.nd.gov')
|
||||
}
|
||||
$Hostname = $FQDN.split('.')[0]
|
||||
$certfile = ($hostname) + "_nd_gov_cert.cer"
|
||||
$cert = (Get-Content "D:\iLO\Certs\$certfile" -Raw).Replace("`r`n", "`n").Trim()
|
||||
Import-HPEiLOCertificate -Certificate $cert -Connection $connection -Verbose
|
||||
Disconnect-HPEiLO -Connection $connection
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Refresh server hardware, in powershell 7
|
||||
# Connect-OVMgmt
|
||||
$OVServers = Get-OVServer | Sort-Object ServerName
|
||||
Foreach($OVServer in $OVServers){
|
||||
Write-Warning ("Start " + $OVServer.ServerName)
|
||||
$OVServer | Update-OVServer -Async
|
||||
Start-Sleep -Seconds 15
|
||||
}
|
||||
|
||||
|
||||
|
||||
#######################
|
||||
Reference in New Issue
Block a user