SDInputs.psm1
Function Add-SDServerInfo { Write-Host "We will be Entering Server Information for the deployment in this section." Write-Host "You will be prompted to enter information, at the end all that info will be displayed for you to verify." Write-Host "You may enter the MAC Address with colons or without. The program will add colon if you choose not to enter them." Write-Host "" Read-Host "Press any Key to Continue" Clear-Host $site = $config.config.SiteNumber $siteNumberIP = (Set-SiteIPFormat -site $site) do { $lastserver = $false $mgmtMAC = Read-Host "Enter the MGMT Port MAC Address" $lan1MAC = Read-Host "Enter the LAN1 MAC Address" $hostname = Read-Host "Enter the Hostname the Server" $serialnumber = Read-Host "Enter the Serial Number of the Server" do { $i = 0 Try { [ValidatePattern('^((1?[0-9]?[0-9])?|(25[0-5])?|(2[0-4][0-9])?)$')]$vmwareIP = read-host "Enter the last IP Octet for VMWare Mgmt on the Server" -ErrorAction Stop } Catch { Write-Error -Message "You must only enter the last octet between 0-255" continue } break }until($i -eq 1) do { $i = 0 Try { [ValidatePattern('^((1?[0-9]?[0-9])?|(25[0-5])?|(2[0-4][0-9])?)$')]$imcIP = read-host "Enter the last IP Octet for IMC Mgmt on the Server" -ErrorAction Stop } Catch { Write-Error -Message "You must only enter the last octet between 0-255" continue } break }until($i -eq 1) $IMCDHCPAddress = Get-DhcpServerv4Lease -ScopeId 172.29.$siteNumberIP.0 | Where-Object -Property Hostname -Match $serialNumber | Select-Object -ExpandProperty IPAddress $server = New-Object psobject -Property @{ "MGMTMAC" = (Set-SDNormalizedMac -mac $mgmtMAC) "LAN1MAC" = (Set-SDNormalizedMac -mac $lan1MAC) "Hostname" = $hostname "VMwareIPAddress" = "10.$siteNumberIP.4.$vmwareIP" "IMCIP" = "172.29.$siteNumberIP.$imcIP" "SerialNumber" = $serialnumber "IMCDHCPAddress" = $IMCDHCPAddress } $server do { $i = 0 Try { [ValidatePattern('^(?i)Y?N?$')]$correct = read-host 'Is this Correct (Y/N)' -ErrorAction Stop } Catch { Write-Error -Message "You must enter Y for yes and N for no" continue } break }until($i -eq 1) if ($correct -eq "Yes" -or $correct -eq "Y") { Set-Variable -Name servers -Value ($servers + ($server | Select-Object MGMTMAC, LAN1MAC, Hostname, VMwareIPAddress, IMCIP, IMCDHCPAddress, SerialNumber)) do { $i = 0 Try { [ValidatePattern('^(?i)Y?N?$')]$checkLastServer = read-host 'Is this the last server (Y/N)' -ErrorAction Stop } Catch { Write-Error -Message "You must enter Y for yes and N for no" continue } break }until($i -eq 1) if ($checkLastServer -eq "Yes" -or $checkLastServer -eq "Y") { $lastserver = $true } if ($checkLastServer -eq "n" -or $checkLastServer -eq "no" ) { continue } } if ($correct -eq "n" -or $correct -eq "no" ) { Clear-Host Write-Host "Please re-enter information" Start-Sleep -Seconds 3 Clear-Host continue } } until ( $lastServer -eq $true ) "Deployment:" | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml foreach ($server in $servers) { " Server:" | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml -Append " LAN1Mac: " + $server.LAN1MAC | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml -Append " Hostname: " + $server.Hostname | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml -Append " VMwareIPAddress: " + $server.VMwareIPAddress | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml -Append " IMCIP: " + $server.IMCIP | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml -Append " IMCDHCPAddress: " + $server.IMCDHCPAddress | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml -Append " SerialNumber: " + $server.SerialNumber | Out-File C:\StackDeploy\Deployments\$SiteNumber.yml -Append } Clear-Host New-SDSRVInfo } Function Get-SDServerInfo { $siteNumber = $global:config.config.SiteNumber Get-Content C:\StackDeploy\Deployments\$siteNumber.yml Read-host "Press any key to Continue" New-SDSRVInfo } Function Import-SDServerInfo { <# .DESCRIPTION This Function prompts the user to select a CSV or YAML file for Servers to be imported. #> $siteNumber = $config.config.siteNumber #Imports Servers from the CSV File and converts it to YAML $servers = Import-Csv C:\StackDeploy\Deployments\$siteNumber-Servers.csv "Deployment:" | Out-File C:\StackDeploy\Deployments\$siteNumber.yml foreach ($server in $servers) { " Server:" | Out-File C:\StackDeploy\Deployments\$siteNumber.yml -Append " LAN1Mac: " + $server.LAN1MAC | Out-File C:\StackDeploy\Deployments\$siteNumber.yml -Append " Hostname: " + $server.Hostname | Out-File C:\StackDeploy\Deployments\$siteNumber.yml -Append " VMwareIPAddress: " + $server.VMwareIPAddress | Out-File C:\StackDeploy\Deployments\$siteNumber.yml -Append " IMCIP: " + $server.IMCIP | Out-File C:\StackDeploy\Deployments\$siteNumber.yml -Append " IMCDHCPAddress: " + $server.IMCDHCPAddress | Out-File C:\StackDeploy\Deployments\$siteNumber.yml -Append " SerialNumber: " + $server.SerialNumber | Out-File C:\StackDeploy\Deployments\$siteNumber.yml -Append } New-SDSRVInfo } # Export Module Members Export-ModuleMember Add-SDServerInfo Export-ModuleMember Get-SDServerInfo Export-ModuleMember Import-SDServerInfo Export-ModuleMember Get-SDServerInfo Export-ModuleMember Import-SDServerInfo |