This commit is contained in:
Alexander Stoll 2019-10-31 13:41:49 +01:00
commit 60208d70b9
3 changed files with 30 additions and 13 deletions

View file

@ -4,6 +4,7 @@ function Get-IcingaAgentInstallerAnswerInput()
$Prompt, $Prompt,
[ValidateSet("y","n","v")] [ValidateSet("y","n","v")]
$Default, $Default,
$DefaultInput = '',
[switch]$Secure [switch]$Secure
); );
@ -13,6 +14,10 @@ function Get-IcingaAgentInstallerAnswerInput()
$DefaultAnswer = ' (Y/n)'; $DefaultAnswer = ' (Y/n)';
} elseif ($Default -eq 'n') { } elseif ($Default -eq 'n') {
$DefaultAnswer = ' (y/N)'; $DefaultAnswer = ' (y/N)';
} elseif ($Default -eq 'v') {
if ([string]::IsNullOrEmpty($DefaultInput) -eq $FALSE) {
$DefaultAnswer = [string]::Format(' (Default: "{0}")', $DefaultInput);
}
} }
if (-Not $Secure) { if (-Not $Secure) {
@ -37,6 +42,10 @@ function Get-IcingaAgentInstallerAnswerInput()
} }
} }
if ([string]::IsNullOrEmpty($answer)) {
$answer = $DefaultInput;
}
return @{ return @{
'result' = 2; 'result' = 2;
'answer' = $answer; 'answer' = $answer;

View file

@ -61,7 +61,7 @@ function Get-IcingaAgentMSIPackage()
if ($SkipDownload -eq $FALSE) { if ($SkipDownload -eq $FALSE) {
$DownloadPath = Join-Path $Env:TEMP -ChildPath $UsePackage; $DownloadPath = Join-Path $Env:TEMP -ChildPath $UsePackage;
Write-Host ([string]::Format('Download Icinga 2 Agent installer "{0}" into temp directory "{1}"', $UsePackage, $DownloadPath)); Write-Host ([string]::Format('Downloading Icinga 2 Agent installer "{0}" into temp directory "{1}"', $UsePackage, $DownloadPath));
Invoke-WebRequest -Uri ([string]::Format('{0}/{1}', $Source, $UsePackage)) -OutFile $DownloadPath; Invoke-WebRequest -Uri ([string]::Format('{0}/{1}', $Source, $UsePackage)) -OutFile $DownloadPath;
} }

View file

@ -130,14 +130,31 @@ function Start-IcingaAgentInstallWizard()
$InstallerArguments += ("-Endpoints " + ([string]::Join(',', $Endpoints))); $InstallerArguments += ("-Endpoints " + ([string]::Join(',', $Endpoints)));
} }
if ($null -eq $CAPort) {
if ((Get-IcingaAgentInstallerAnswerInput -Prompt 'Are you using a different port than 5665 for Icinga communications?' -Default 'n').result -eq 0) {
$CAPort = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please enter the port for Icinga 2 communication' -Default 'v').answer;
$InstallerArguments += "-CAPort $CAPort";
} else {
$InstallerArguments += "-CAPort 5665";
$CAPort = 5665;
}
}
if ($EndpointConnections.Count -eq 0 -And $AcceptConnections -eq 1) { if ($EndpointConnections.Count -eq 0 -And $AcceptConnections -eq 1) {
$ArrayString = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please specify the network destinations this agent will connect to ("," separated, like: "[127.0.0.1], [127.0.0.2]")' -Default 'v').answer; $NetworkDefault = '';
foreach ($Endpoint in $Endpoints) {
$NetworkDefault += [string]::Format('[{0}]:{1},', $Endpoint, $CAPort);
}
if ([string]::IsNullOrEmpty($NetworkDefault) -eq $FALSE) {
$NetworkDefault = $NetworkDefault.Substring(0, $NetworkDefault.Length - 1);
}
$ArrayString = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please specify the network destinations this agent will connect to, separated by ","' -Default 'v' -DefaultInput $NetworkDefault).answer;
$EndpointConnections = ($ArrayString.Replace(' ', '')).Split(','); $EndpointConnections = ($ArrayString.Replace(' ', '')).Split(',');
$InstallerArguments += ("-EndpointConnections " + ([string]::Join(',', $EndpointConnections))); $InstallerArguments += ("-EndpointConnections " + ([string]::Join(',', $EndpointConnections)));
} }
if ([string]::IsNullOrEmpty($ParentZone)) { if ([string]::IsNullOrEmpty($ParentZone)) {
$ParentZone = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please specify the parent zone this agent will connect to' -Default 'v').answer; $ParentZone = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please specify the parent zone this agent will connect to' -Default 'v' -DefaultInput 'master').answer;
$InstallerArguments += "-ParentZone $ParentZone"; $InstallerArguments += "-ParentZone $ParentZone";
} }
@ -193,18 +210,9 @@ function Start-IcingaAgentInstallWizard()
if ($CanConnectToParent) { if ($CanConnectToParent) {
if ([string]::IsNullOrEmpty($CAEndpoint)) { if ([string]::IsNullOrEmpty($CAEndpoint)) {
$CAEndpoint = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please enter the FQDN for either ONE of your Icinga parent node/nodes or your Icinga 2 CA master (if you can connect to it)' -Default 'v').answer; $CAEndpoint = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please enter the FQDN for either ONE of your Icinga parent node/nodes or your Icinga 2 CA master' -Default 'v' -DefaultInput $Endpoints[0]).answer;
$InstallerArguments += "-CAEndpoint $CAEndpoint"; $InstallerArguments += "-CAEndpoint $CAEndpoint";
} }
if ($null -eq $CAPort) {
if ((Get-IcingaAgentInstallerAnswerInput -Prompt 'Are you using a different port then 5665 for Icinga communications?' -Default 'n').result -eq 0) {
$CAPort = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please enter your port to communicate with the Icinga 2 CA' -Default 'v').answer;
$InstallerArguments += "-CAPort $CAPort";
} else {
$InstallerArguments += "-CAPort 5665";
$CAPort = 5665;
}
}
if ($null -eq $Ticket) { if ($null -eq $Ticket) {
if ((Get-IcingaAgentInstallerAnswerInput -Prompt 'Do you have a Icinga Ticket available to sign your certificate?' -Default 'y').result -eq 1) { if ((Get-IcingaAgentInstallerAnswerInput -Prompt 'Do you have a Icinga Ticket available to sign your certificate?' -Default 'y').result -eq 1) {
$Ticket = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please enter your Icinga Ticket' -Default 'v').answer; $Ticket = (Get-IcingaAgentInstallerAnswerInput -Prompt 'Please enter your Icinga Ticket' -Default 'v').answer;