Add PowerShell-free Windows installer
This commit is contained in:
+26
-40
@@ -16,7 +16,7 @@ Verbindliche Randbedingungen:
|
||||
- Der Agentpfad fuehrt niemals WMI- oder SQL-Abfragen aus.
|
||||
- Fehler muessen als gueltige Checkmk-`UNKNOWN`-Services sichtbar werden.
|
||||
- Schreiben und Lesen duerfen nie einen halben Snapshot exponieren.
|
||||
- Laufzeitcode benoetigt keine PowerShell und keine BizTalk-DLL-Referenz.
|
||||
- Installation und Laufzeit benoetigen keine PowerShell und keine BizTalk-DLL-Referenz.
|
||||
- Installation, ACL und Scheduled Task muessen reproduzierbar sein.
|
||||
|
||||
## 2. Ausloeser der Architekturanderung
|
||||
@@ -337,29 +337,30 @@ scripts\test-release.cmd
|
||||
scripts\package-release.cmd
|
||||
```
|
||||
|
||||
Der Release-Build der Visual-Studio-2019-Solution baut Anwendung, grafischen
|
||||
Installer und Packaging-Werkzeug. Danach liegen der Paketordner
|
||||
`artifacts\BizTalkCheckmkPulse-Setup` und das direkt transportierbare
|
||||
`artifacts\BizTalkCheckmkPulse-Setup.zip` bereit.
|
||||
|
||||
### 8.2 Normales Servicekonto
|
||||
|
||||
```powershell
|
||||
.\Install-BizTalkCheckmkPulse.ps1 `
|
||||
-CollectorAccount 'BEW\svc_biztalk_cmk' `
|
||||
-EnvironmentName ACC
|
||||
```
|
||||
Das ZIP wird auf dem Zielserver vollstaendig entpackt. Danach `Setup.exe` als
|
||||
Administrator starten, Konto im Format `DOMAIN\Benutzer` (zum Beispiel
|
||||
`BEW\t231bizmon`), Kennwort und Umgebung eintragen und die Installation
|
||||
starten.
|
||||
|
||||
Der Installer muss als lokaler Administrator laufen. Er vergibt keine
|
||||
AD-/BizTalk-/SQL-Rechte; diese bleiben getrennte administrative Freigaben.
|
||||
|
||||
Der installierte Task selbst laeuft mit `RunLevel Limited`. Der Installer fragt
|
||||
das Kennwort mit `Get-Credential` ab; es wird nicht in Config oder Log
|
||||
Der installierte Task selbst laeuft mit `RunLevel Limited`. Der Installer
|
||||
uebergibt das Kennwort direkt an die Windows-Task-Scheduler-COM-Schnittstelle;
|
||||
es wird weder in einer Prozesskommandozeile noch in Config oder Log
|
||||
geschrieben. Das Konto benoetigt `Log on as a batch job`.
|
||||
|
||||
### 8.3 Optionales gMSA
|
||||
|
||||
```powershell
|
||||
.\Install-BizTalkCheckmkPulse.ps1 `
|
||||
-CollectorAccount 'BEW\svc_biztalk_cmk$' `
|
||||
-Gmsa `
|
||||
-EnvironmentName ACC
|
||||
```
|
||||
Im Installer die gMSA-Checkbox aktivieren und ein auf `$` endendes Konto wie
|
||||
`BEW\svc_biztalk_cmk$` eingeben. Ein Kennwort wird dann nicht abgefragt.
|
||||
|
||||
### 8.4 Checkmk
|
||||
|
||||
@@ -411,12 +412,12 @@ aelter als `LogRetentionDays`.
|
||||
|
||||
### 10.1 Grundpruefung
|
||||
|
||||
```powershell
|
||||
Get-ScheduledTaskInfo -TaskName 'BizTalk Checkmk Pulse Provider'
|
||||
Get-Item "$env:ProgramData\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot"
|
||||
Get-Content "$env:ProgramData\BizTalkCheckmkPulse\logs\*.log" -Tail 100
|
||||
& "$env:ProgramFiles\BizTalkCheckmkPulse\BizTalkCheckmkPulse.exe" --consume
|
||||
& "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump
|
||||
```cmd
|
||||
schtasks.exe /query /tn "BizTalk Checkmk Pulse Provider" /v /fo list
|
||||
dir "%ProgramData%\BizTalkCheckmkPulse\data\biztalk-checkmk-pulse.snapshot"
|
||||
type "%ProgramData%\BizTalkCheckmkPulse\logs\biztalk-checkmk-pulse-*.log"
|
||||
"%ProgramFiles%\BizTalkCheckmkPulse\BizTalkCheckmkPulse.exe" --consume
|
||||
"C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump
|
||||
```
|
||||
|
||||
### 10.2 Kein Snapshot
|
||||
@@ -557,32 +558,17 @@ Erst nach ACC-Abnahme erfolgt der gestufte Rollout nach DEV/TST/PRD.
|
||||
|
||||
## 13. Deinstallation und Rollback
|
||||
|
||||
```powershell
|
||||
.\Uninstall-BizTalkCheckmkPulse.ps1
|
||||
```
|
||||
|
||||
`-KeepRuntimeData` erhaelt Logs und Snapshot. Das Skript entfernt Task,
|
||||
Wrapper und Programmdateien, aber keine AD-Gruppenmitgliedschaft. Die
|
||||
Berechtigung wird separat nach Change-Verfahren entzogen.
|
||||
`Setup.exe` aus dem entpackten Paket erneut starten und **Deinstallieren**
|
||||
waehlen. Der Installer entfernt Task, Wrapper und Programmdateien, behaelt
|
||||
Logs und Snapshot aber absichtlich bei. Die AD-Gruppenmitgliedschaft wird
|
||||
nicht geaendert und separat nach Change-Verfahren entzogen.
|
||||
|
||||
Rollback auf die alte direkte `LocalSystem`-Architektur ist nicht empfohlen.
|
||||
Falls kurzfristig notwendig, muss Security die Maschinenkonto-Berechtigung
|
||||
explizit freigeben; der Checkmk-Agentdienst selbst darf nicht auf das
|
||||
Collector-Konto umgestellt werden.
|
||||
|
||||
## 14. Transport per certutil
|
||||
|
||||
Die Source-Uebergabe besteht aus ZIP plus Base64-TXT:
|
||||
|
||||
```cmd
|
||||
certutil -decode <datei>.zip.b64.txt <datei>.zip
|
||||
certutil -hashfile <datei>.zip SHA256
|
||||
tar -xf <datei>.zip
|
||||
```
|
||||
|
||||
ZIP und Base64 werden erst nach dem Git-Commit aus genau diesem Commit erzeugt.
|
||||
|
||||
## 15. Referenzen
|
||||
## 14. Referenzen
|
||||
|
||||
- https://learn.microsoft.com/en-us/biztalk/core/managing-biztalk-server-security
|
||||
- https://learn.microsoft.com/en-us/biztalk/core/windows-groups-and-user-accounts-in-biztalk-server
|
||||
|
||||
Reference in New Issue
Block a user