For the complete documentation index, see llms.txt. This page is also available as Markdown.

Wie kann ich den Enginsight Pulsar automatisch auf mehreren persistenten Windows-Systemen ausrollen?

Es ist möglich, den Enginsight Agenten Pulsar automatisiert auf einer beliebigen Anzahl von persistenten Hosts mit Windows-Betriebssystem basierend auf einem Master-Image auszurollen.

Die nachfolgend beschriebenen Schritte gelten für folgende Umgebungen:

  • Persistente Windows-Maschinen (z.B. statische virtuelle Maschinen, physische Server, Clients oder andere Systeme mit dediziertem Hostnamen)

lightbulb

1

Pulsar auf einem Master-Host installieren

  1. Starte das Windows-System, von dem ein Master-Image mit vorbereitetem Pulsar erstellt werden soll.

  2. Navigiere zur Enginsight Plattform und folge den Installationsanweisungen zum Pulsar für die automatische Installation auf Windows-Clients wie im Enginsight Handbuch beschrieben.

  3. Speichere dir dabei das Installationsskript aus Schritt 4 der Pulsar-Installationsanleitung ab, da du es später wieder benötigst.

2

Pulsar-Dienste stoppen und Starttyp anpassen

  1. Stoppe nach erfolgreicher Installation die Pulsar-Dienste Enginsight Pulsar und Enginsight Supervisor über eine Administrator-PowerShell mit folgenden Befehlen:

Stop-Service "Enginsight Pulsar"
Stop-Service "Enginsight Supervisor"
  1. Stelle den Starttyp der Pulsar-Dienste mit folgenden Befehlen auf manuell um, damit sie beim Erstellen des Images nicht automatisch starten:

Set-Service -Name "Enginsight Pulsar" -StartupType Manual
Set-Service -Name "Enginsight Supervisor" -StartupType Manual
3

Master-Host in der Plattform löschen

Navigiere in der Enginsight Plattform zu HostsÜbersicht und lösche den bei der Installation des Pulsars automatisch angelegten Windows-Client für das Master-Image.

4

Sicherungskopie der Pulsar-Konfigurationsdatei erstellen

Erstelle mit folgenden Befehlen eine Sicherungskopie der Pulsar-Konfigurationsdatei, da die ursprüngliche Datei beim automatischen Ausrollen des Pulsars überschrieben wird:

Copy-Item "C:\Programme\Enginsight\Pulsar\config.json" `
"C:\Programme\Enginsight\Pulsar\config.json.bak"
5

Master-Image speichern

Speichere das Master-Image mit vorbereitetem Pulsar ab.

6

Textdatei mit Host-Namen erstellen

  1. Erstelle nun eine .txt-Datei, die alle Host-Namen enthält, auf denen der Pulsar ausgerollt werden soll. Achte darauf, dass pro Zeile ein Host-Name steht, z.B.:

Beispiel-Host-VM-01
Beispiel-Host-VM-02
Beispiel-Host-VM-03
  1. Speichere die Textdatei mit einem aussagekräftigen Namen ab.

7

Skript für die Provisionierung abspeichern und ausführen

  1. Kopiere das folgende Skript:

param ($hosts, $accessKeyId, $accessKeySecret, $outFolder=".")

if ($hosts -eq $null) {
    throw "Must provide a file (-hosts) with line-by-line hostnames to create configs for"
}

if (($accessKeyId -eq $null) -or ($accessKeySecret -eq $null)) {
    throw "Must provide credentials (-accessKeyId, -accessKeySecret) suitable for Pulsar installation"
}

Write-Host "Creating configs for hosts from ${hosts} in `"${outFolder}`", using existing config.json as template"

if (-not (Test-Path -Path $outFolder)) {
    Write-Host "${outFolder} does not exist, creating it"
    try {
        New-Item -ItemType Directory -Path $outFolder | Out-Null
    } catch {
        throw "Failed to create output folder`n$_"
    }
}

try {
    $configTemplate = Get-Content -Raw -Path "C:\Program Files\Enginsight\Pulsar\config.json" | ConvertFrom-Json
} catch {
    throw "Failed to read C:\Program Files\Enginsight\Pulsar\config.json - is Pulsar installed properly?`n$_"
}

$args = "-install","-accessKeyId",$accessKeyId,"-accessKeySecret",$accessKeySecret,"-license",$configTemplate.license,
    "-api",$configTemplate.api.url
if ($configTemplate.api.proxy -ne "") {
    $args += "-proxy",$configTemplate.api.proxy,"-noProxy",$configTemplate.api.noProxy
}

foreach($hostname in Get-Content $hosts) {
    $hostname = $hostname.Trim()
    if ($hostname -eq "") {
        continue
    }

    $outFile = Join-Path -Path ${outFolder} -ChildPath "config_${hostname}.json"

    if (Test-Path -Path $outFile) {
        Write-Error "Configuration for host ${hostname} already exists at ${outFile}, skipping"
        continue
    }

    $proxyParams = ""

    Write-Host "Creating config for host ${hostname}"

    & "C:\Program Files\Enginsight\Pulsar\ngs-pulsar-amd64.exe" @args
    if (-not ($?)) {
        throw "Failed to create config for ${hostname}"
    }

    try {
        $config = Get-Content -Raw -Path "C:\Program Files\Enginsight\Pulsar\config.json" | ConvertFrom-Json
        $config.override = $configTemplate.override
        if ($configTemplate.tieredTransactionLog -ne $null) {
            $config.tieredTransactionLog = $configTemplate.tieredTransactionLog
        }
    } catch {
        throw "Failed to read newly created config file`n$_"
    }

    try {
        $config | ConvertTo-Json -Depth 4 | Set-Content -Path $outFile -Encoding UTF8NoBOM
        Write-Host "Successfully created config for ${hostname} at ${outFile}"
    } catch {
        throw "Failed to write config for ${hostname} to ${outFile}`n$_"
    }
}
  1. Speichere das Skript unter dem folgenden Pfad ab:

C:\Programme\Enginsight\Pulsar\provision.ps1
  1. Führe das Skript mit folgendem Befehl aus:

& "C:\Program Files\Enginsight\Pulsar\provision.ps1" -hosts "<PfadZurHostsDatei>\<HostsDateiname>.txt" -accessKeyId "<AccessKeyID>" -accessKeySecret "<AccessKeySecret>"

Vergiss dabei nicht, die folgenden Parameter in <> entsprechend zu ersetzen:

  • <PfadZurHostsDatei>: Der Pfad zur Textdatei, die alle Host-Namen enthält.

  • <HostsDateiname>: Der Name der Textdatei, die alle Host-Namen enthält.

  • <AccessKeyID> und <AccessKeySecret>: Der Access Key und das Access Key Secret, die du aus dem in Schritt 1.3 gespeicherten Installationsskript erhalten hast.

Mit Ausführung des Skripts wird für jeden Host, der korrekt in der in Schritt 6 erstellten Textdatei gelistet wurde, eine eigene Pulsar-Konfigurationsdatei erstellt und ein neuer Host in der Enginsight Plattform unter HostsÜbersicht angelegt.

8

Pulsar-Dienste auf jedem Host starten und Starttyp anpassen

Nun muss auf jedem Host, auf der ein Pulsar installiert wurde, die passende Konfigurationsdatei in das Pulsar-Verzeichnis kopiert, die Pulsar-Dienste wieder gestartet und der Starttyp auf automatisch umgestellt werden.

Nutze dazu folgendes Startskript, das du bspw. per Windows-Gruppenrichtlinie auf die entsprechenden Hosts verteilen kannst:

cp "<PfadZurKonfigurationsdatei>\config_${env:computername}.json" "C:\Program Files\Enginsight\Pulsar\config.json"
Start-Service "Enginsight Pulsar"

Set-Service -Name "Enginsight Pulsar" -StartupType Automatic
Set-Service -Name "Enginsight Supervisor" -StartupType Automatic

Vergiss dabei nicht, den Parameter <PfadZurKonfigurationsdatei> entsprechend zu ersetzen.


Weitere Ressourcen


Zuletzt aktualisiert

War das hilfreich?