Add PowerShell-free Windows installer
This commit is contained in:
@@ -143,22 +143,29 @@ scripts\test-release.cmd
|
||||
scripts\package-release.cmd
|
||||
```
|
||||
|
||||
Das Paket wird unter `artifacts\BizTalkCheckmkPulse-deploy` erzeugt:
|
||||
Jeder Release-Build der Solution erzeugt automatisch den fertigen Paketordner
|
||||
und das transportierbare ZIP:
|
||||
|
||||
```text
|
||||
BizTalkCheckmkPulse-deploy\
|
||||
Install-BizTalkCheckmkPulse.ps1
|
||||
Uninstall-BizTalkCheckmkPulse.ps1
|
||||
biztalk_checkmk_pulse.cmd
|
||||
application\
|
||||
BizTalkCheckmkPulse.exe
|
||||
BizTalkCheckmkPulse.exe.config
|
||||
artifacts\
|
||||
BizTalkCheckmkPulse-Setup.zip
|
||||
BizTalkCheckmkPulse-Setup\
|
||||
Setup.exe
|
||||
INSTALLATION.md
|
||||
biztalk_checkmk_pulse.cmd
|
||||
application\
|
||||
BizTalkCheckmkPulse.exe
|
||||
BizTalkCheckmkPulse.exe.config
|
||||
```
|
||||
|
||||
Das Packaging-Projekt ist Teil von `BizTalkCheckmkPulse.sln`. Ein normaler
|
||||
`Release`-Build in Visual Studio 2019 genuegt daher; ein separates
|
||||
PowerShell-/WiX-/MSI-Tooling wird nicht benoetigt.
|
||||
|
||||
Format-Self-Test ohne WMI, SQL oder Event Log:
|
||||
|
||||
```cmd
|
||||
artifacts\BizTalkCheckmkPulse-deploy\application\BizTalkCheckmkPulse.exe --self-test
|
||||
artifacts\BizTalkCheckmkPulse-Setup\application\BizTalkCheckmkPulse.exe --self-test
|
||||
```
|
||||
|
||||
Erwartet werden exakt acht `OK`-Zeilen. Die Regressionstests pruefen
|
||||
@@ -170,16 +177,7 @@ Windows-/BizTalk-Laufzeitvalidierung.
|
||||
## Berechtigung vorbereiten
|
||||
|
||||
Die exakte Read-Only-Gruppe wird in der BizTalk Administration Console unter
|
||||
den Eigenschaften der BizTalk-Gruppe abgelesen. Ein bereits berechtigtes Konto
|
||||
kann sie alternativ ermitteln:
|
||||
|
||||
```powershell
|
||||
Get-CimInstance `
|
||||
-Namespace root/MicrosoftBizTalkServer `
|
||||
-ClassName MSBTS_GroupSetting |
|
||||
Select-Object Name, BizTalkReadOnlyUserGroup, BizTalkOperatorGroup,
|
||||
MgmtDbServerName, MgmtDbName
|
||||
```
|
||||
den Eigenschaften der BizTalk-Gruppe abgelesen.
|
||||
|
||||
Ein AD-Administrator nimmt das neue Provider-Konto in
|
||||
`BizTalkReadOnlyUserGroup` auf. Nach AD-Replikation muss das Servicekonto durch
|
||||
@@ -194,22 +192,23 @@ fuer das Provider-Konto.
|
||||
|
||||
## Installation mit normalem Servicekonto
|
||||
|
||||
```powershell
|
||||
Set-Location C:\Temp\BizTalkCheckmkPulse-deploy
|
||||
.\Install-BizTalkCheckmkPulse.ps1 `
|
||||
-CollectorAccount 'BEW\svc_biztalk_cmk' `
|
||||
-EnvironmentName ACC
|
||||
```
|
||||
1. `BizTalkCheckmkPulse-Setup.zip` auf dem Zielserver vollstaendig entpacken.
|
||||
2. `Setup.exe` starten und die UAC-Abfrage bestaetigen.
|
||||
3. Collector-Konto, zum Beispiel `BEW\t231bizmon`, Kennwort und Umgebung
|
||||
eingeben.
|
||||
4. **Installieren / aktualisieren** waehlen.
|
||||
|
||||
Der Installer fragt das Kennwort ueber `Get-Credential` ab und speichert es
|
||||
durch die Windows-Aufgabenplanung. Das Kennwort steht weder in der
|
||||
Konfigurationsdatei noch in den Logs.
|
||||
Der Installer uebergibt das Kennwort direkt ueber die Windows-Task-Scheduler-
|
||||
COM-Schnittstelle. Es steht weder in einer Prozesskommandozeile noch in der
|
||||
Konfigurationsdatei oder in Logs. Der Backslash in `DOMAIN\Benutzer` wird als
|
||||
normaler Bestandteil des Kontonamens verarbeitet.
|
||||
|
||||
Wenn das Kennwort rotiert oder ablaeuft, muss es im Scheduled Task aktualisiert
|
||||
werden. Bis dahin wird der Snapshot nach 180 Sekunden stale und Checkmk zeigt
|
||||
alle acht Services als `UNKNOWN`.
|
||||
werden. Dazu `Setup.exe` mit dem neuen Kennwort erneut ausfuehren. Bis dahin
|
||||
wird der Snapshot nach 180 Sekunden stale und Checkmk zeigt alle acht Services
|
||||
als `UNKNOWN`.
|
||||
|
||||
Ein gMSA kann weiterhin optional mit `-Gmsa` installiert werden; die
|
||||
Ein gMSA kann ueber die Checkbox ohne Kennworteingabe installiert werden; die
|
||||
produktive Standardbeschreibung geht vom normalen Servicekonto aus.
|
||||
|
||||
Der Installer:
|
||||
@@ -224,48 +223,34 @@ Der Installer:
|
||||
`IgnoreNew`, fuenf Minuten Laufzeitlimit und zwei Wiederholungen,
|
||||
6. fuehrt den Self-Test aus und startet den Provider einmalig.
|
||||
|
||||
PowerShell wird nur fuer Installation und Betriebsdiagnose verwendet. Der
|
||||
minuetliche Provider und der Checkmk-Consumer sind .NET-/CMD-Laufzeitcode und
|
||||
haengen nicht von der PowerShell Execution Policy ab.
|
||||
Installation, Update, Deinstallation und Laufzeit verwenden keine PowerShell.
|
||||
|
||||
## Verifikation auf dem Server
|
||||
|
||||
Task und letzter Lauf:
|
||||
|
||||
```powershell
|
||||
Get-ScheduledTask -TaskName 'BizTalk Checkmk Pulse Provider' |
|
||||
Select-Object TaskName, State
|
||||
Get-ScheduledTaskInfo -TaskName 'BizTalk Checkmk Pulse Provider' |
|
||||
Select-Object LastRunTime, LastTaskResult, NextRunTime
|
||||
```cmd
|
||||
schtasks.exe /query /tn "BizTalk Checkmk Pulse Provider" /v /fo list
|
||||
```
|
||||
|
||||
Provider-Log:
|
||||
|
||||
```powershell
|
||||
Get-ChildItem "$env:ProgramData\BizTalkCheckmkPulse\logs" |
|
||||
Sort-Object LastWriteTime -Descending |
|
||||
Select-Object -First 3 Name, Length, LastWriteTime
|
||||
|
||||
Get-Content `
|
||||
"$env:ProgramData\BizTalkCheckmkPulse\logs\biztalk-checkmk-pulse-*.log" `
|
||||
-Tail 100
|
||||
```cmd
|
||||
dir /o-d "%ProgramData%\BizTalkCheckmkPulse\logs"
|
||||
type "%ProgramData%\BizTalkCheckmkPulse\logs\biztalk-checkmk-pulse-*.log"
|
||||
```
|
||||
|
||||
Snapshot und Consumer:
|
||||
|
||||
```powershell
|
||||
Get-Item `
|
||||
"$env:ProgramData\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot" |
|
||||
Select-Object FullName, Length, LastWriteTimeUtc
|
||||
|
||||
& "$env:ProgramFiles\BizTalkCheckmkPulse\BizTalkCheckmkPulse.exe" --consume
|
||||
```cmd
|
||||
dir "%ProgramData%\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot"
|
||||
"%ProgramFiles%\BizTalkCheckmkPulse\BizTalkCheckmkPulse.exe" --consume
|
||||
```
|
||||
|
||||
Verbindlicher Test im echten `LocalSystem`-Kontext:
|
||||
|
||||
```powershell
|
||||
& "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump |
|
||||
Select-String -Pattern "BizTalk|UNKNOWN|Snapshot|Permission" -Context 0,1
|
||||
```cmd
|
||||
"C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump
|
||||
```
|
||||
|
||||
Danach in Checkmk eine Service Discovery ausfuehren, die acht Services
|
||||
@@ -356,33 +341,12 @@ Ausfuehrliche Betriebs- und Architekturdetails stehen in
|
||||
|
||||
## Deinstallation
|
||||
|
||||
```powershell
|
||||
.\Uninstall-BizTalkCheckmkPulse.ps1
|
||||
```
|
||||
|
||||
Das Skript fragt vor dem Entfernen. Mit `-KeepRuntimeData` bleiben Snapshot und
|
||||
Logs erhalten:
|
||||
|
||||
```powershell
|
||||
.\Uninstall-BizTalkCheckmkPulse.ps1 -KeepRuntimeData
|
||||
```
|
||||
`Setup.exe` erneut starten und **Deinstallieren** waehlen. Snapshot und Logs
|
||||
bleiben dabei unter `%ProgramData%\BizTalkCheckmkPulse` erhalten.
|
||||
|
||||
Die AD-Gruppenmitgliedschaft des Provider-Kontos wird bewusst nicht automatisch
|
||||
geaendert und muss separat durch AD-/BizTalk-Administration entfernt werden.
|
||||
|
||||
## Certutil-Transport
|
||||
|
||||
Zu jeder Uebergabe wird ein Source-ZIP und eine certutil-kompatible
|
||||
Base64-Textdatei erzeugt. Auf Windows:
|
||||
|
||||
```cmd
|
||||
certutil -decode biztalk-checkmk-pulse-source-<datum>-<commit>.zip.b64.txt biztalk-checkmk-pulse-source.zip
|
||||
certutil -hashfile biztalk-checkmk-pulse-source.zip SHA256
|
||||
tar -xf biztalk-checkmk-pulse-source.zip
|
||||
```
|
||||
|
||||
Die konkrete Datei und SHA-256-Summe werden bei der Uebergabe genannt.
|
||||
|
||||
## Quellen
|
||||
|
||||
- Microsoft: BizTalk `MSBTS_GroupSetting.BizTalkReadOnlyUserGroup`
|
||||
|
||||
Reference in New Issue
Block a user