function Install-ORBWebServer { <# .SYNOPSIS Installs an ORB Web Server. #> # Todo: Set parameter groups and verification [CmdletBinding()] Param( [Parameter(Mandatory = $false)] [Alias("ClientSiteUrl")] [string]$clientUrl, [Parameter(Mandatory = $false)] [Alias("AdminSiteUrl")] [string]$adminUrl, [Parameter(Mandatory = $false)] [Alias("IpstsSiteUrl")] [string]$ipstsUrl, [Parameter(Mandatory = $false)] [Alias("SecretServerUserName")] [string]$secretUserName, [Parameter(Mandatory = $false)] [Alias("SecretServerPassword")] [string]$secretPassword, [Parameter(Mandatory = $false)] [Alias("SecretServerFolders")] [string]$secretFolderNames, [Parameter(Mandatory = $false)] [Alias("SecretServerDomain")] [string]$secretDomain = "corp.alkamitech.com", [Parameter(Mandatory = $false)] [Alias("AppTierVIP")] [string]$appTierVipPrefix, [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] [Alias("SkipWarmup")] [switch]$skipSiteWarmup, [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] [Alias("CombineAdminAppPools")] [switch]$doCombineAdminAppPools, [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] [Alias("CombineClientAppPools")] [switch]$doCombineClientAppPools, [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] [Alias("CombineIPSTSAppPools")] [switch]$doCombineIPSTSAppPools, [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] [Alias("CombineAdminWebSites")] [switch]$doCombineAdminWebSites, [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] [Alias("CombineClientWebSites")] [switch]$doCombineClientWebSites, [Parameter(ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, Mandatory = $false)] [Alias("CombineIPSTSWebSites")] [switch]$doCombineIPSTSWebSites ) if (Test-IsAppServer) { $title = "You Are Attempting to Install the ORB Web Tier on a Machine Identified as an App Tier Server" $message = "Do you want to quit?" $yes = New-Object System.Management.Automation.Host.ChoiceDescription "&Yes", "Breaks execution." $no = New-Object System.Management.Automation.Host.ChoiceDescription "&No", "Continues execution." $options = [System.Management.Automation.Host.ChoiceDescription[]]($yes, $no) $result = $host.ui.PromptForChoice($title, $message, $options, 0) switch ($result) { 0 { return } } } $logLead = (Get-LogLeadName); Write-Output ("$logLead : Configuring Machine as Web Tier Server for POD {0}" -f [Environment]::GetEnvironmentVariable("POD", "Machine")); if (![String]::IsNullOrEmpty($secretUserName) -and ![String]::IsNullOrEmpty($secretPassword) -and ![String]::IsNullOrEmpty($secretFolderNames) -and ![String]::IsNullOrEmpty($secretDomain)) { Read-WebTierSecrets $secretUserName $secretPassword $secretFolderNames $secretDomain; } Set-WebTierDefaultWebSite; Set-WebTierFolderAndFilePermissions; Set-ServerResponseHeaders; Set-ServerMIMETypes; New-WebTierMachineConfigAppSettings; New-MachineConfigMachineKeys; Write-Output "$logLead : Running New-OrbSymLinks" New-OrbSymLinks New-WebTierWebSites $clientUrl $adminUrl $ipstsUrl -CombineAdminAppPools:$doCombineAdminAppPools.IsPresent -CombineClientAppPools:$doCombineClientAppPools.IsPresent -CombineIPSTSAppPools:$doCombineIPSTSAppPools.IsPresent -CombineAdminWebSites:$doCombineAdminWebSites.IsPresent -CombineClientWebSites:$doCombineClientWebSites.IsPresent -CombineIPSTSWebSites:$doCombineIPSTSWebSites.IsPresent; if (!([String]::IsNullOrEmpty($appTierVipPrefix))) { New-VIPsHostFileEntries $appTierVipPrefix; } Rename-NewLogConfig; Set-RapidFailSettings; if ($skipSiteWarmup) { return } Start-IISAndServices; Write-Output "$logLead : Warming up sites..."; Ping-AlkamiWebSites; }