121 lines
4.4 KiB
PowerShell
121 lines
4.4 KiB
PowerShell
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;
|
|
}
|