ps/Modules/Alkami.DevOps.Installation/Public/Install-ORB.ps1
2023-05-30 22:51:22 -07:00

117 lines
5.1 KiB
PowerShell

function Install-ORB {
<#
.SYNOPSIS
Provides an entry point to install ORB on a Web or App Tier Server. This function is primarily utilized by automation which may not know what tier it may be installing.
.DESCRIPTION
Provides an entry point to install ORB on a web or app tier server. In order to leverage this function the machine must be properly instrumented with a ServerRole envirornmental variable, if it is a
new machine. The ServerRole system environmental variable value should be set to one of either Web or App. If your machines have not been tagged during provisioning you may add the variable manually,
or call the Install-ORBAppServer / Install-ORBWebServer functions directly with the appropriate parameters
.PARAMETER clientUrl
Alias: ClientSiteUrl
Provide the Client Site URL without preceeding protocol or trailing slash. For example, instead of https://orb.alkamitech.com/, provide orb.alkamitech.com. This parameter is only used when installing on a web tier server.
.PARAMETER adminUrl
Alias: AdminSiteUrl
Provide the Admin Site URL without preceeding protocol or trailing slash. For example, instead of https://admin-orb.alkamitech.com/, provide admin-orb.alkamitech.com. This parameter is only used when installing on a web tier server.
.PARAMETER ipstsUrl
Alias: IPSTSSiteUrl
Provide the IPSTS Site URL without preceeding protocol or trailing slash. For example, instead of https://orb-ip.alkamitech.com/, provide orb-ip.alkamitech.com. This parameter is only used when installing on a web tier server.
.PARAMETER skipSiteAndAppWarmup
Alias: SkipWarmup
Will skip the warmup of sites or services when set
.PARAMETER doCombineAdminAppPools
Alias: CombineAdminAppPools
Will configure admin websites to use an app pool named 'Admin' when set
.PARAMETER doCombineClientAppPools
Alias: CombineClientAppPools
Will configure client websites to use an app pool named 'WebClient' when set
.PARAMETER doCombineIPSTSAppPools
Alias: CombineIPSTSAppPools
Will configure IPSTS websites to use an app pool named 'IPSTS' when set
.EXAMPLE
Install-ORB -ClientSiteUrl orb.alkamitech.com -AdminSiteUrl admin-orb.alkamitech.com -IpstsSiteUrl orb-ip.alkamitech.com -SecretServerUserName foobar -SecretServerPassword barfoo -SecretServerFolders "POD6,Common"
.EXAMPLE
Install-ORB -Broadcasters "Server1,Server2,Server3" -SkipWarmup
#>
[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("SkipWarmup")]
[switch]$skipSiteAndAppWarmup,
[Parameter(Mandatory = $false)]
[Alias("CombineAdminAppPools")]
[switch]$doCombineAdminAppPools,
[Parameter(Mandatory = $false)]
[Alias("CombineClientAppPools")]
[switch]$doCombineClientAppPools,
[Parameter(Mandatory = $false)]
[Alias("CombineIPSTSAppPools")]
[switch]$doCombineIPSTSAppPools
)
$logLead = (Get-LogLeadName);
Write-Verbose ("$logLead : Received Arguments:");
Write-Verbose (" ClientSiteUrl: $clientUrl");
Write-Verbose (" AdminSiteUrl: $adminUrl");
Write-Verbose (" IpstsSiteUrl: $ipstsUrl");
Write-Verbose (" SecretServerUserName: $secretUserName");
Write-Verbose (" SecretServerPassword: REDACTED");
Write-Verbose (" SecretServerFolders: $secretFolderNames");
Write-Verbose (" SecretServerDomain: $secretDomain");
if (Test-IsAppServer) {
Install-ORBAppServer -SecretServerUserName $secretUserName -SecretServerPassword $secretPassword -SecretServerFolders $secretFolderNames -SecretServerDomain $secretDomain -SkipAppWarmup:$skipSiteAndAppWarmup;
}
elseif (Test-IsWebServer) {
Install-ORBWebServer -ClientSiteUrl $clientUrl -AdminSiteUrl $adminUrl -IpstsSiteUrl $ipstsUrl -SecretServerUserName $secretUserName -SecretServerPassword $secretPassword -SecretServerFolders $secretFolderNames -SecretServerDomain $secretDomain -SkipSiteWarmup:$skipSiteAndAppWarmup -CombineAdminAppPools:$doCombineAdminAppPools -CombineClientAppPools:$doCombineClientAppPools -CombineIPSTSAppPools:$doCombineIPSTSAppPools;
}
else {
Write-Warning "Could not automatically determine if this server is a web or app tier machine.";
Write-Output "You may still call Install-ORBAppServer or Install-ORBWebServer directly";
}
}