Ročna nastavitev prehoda kot sistemske storitve
V sistemu Windows prehod kot storitev nastavi namestitveni paket. Brez paketa (na primer na preizkusnem računalniku ali v Linuxu) ga nastavite po tem navodilu. Isti program teče kot konzolni proces, kot storitev Windows ali kot storitev systemd in ustreznemu upravljalniku storitev sporoča zagon in ustavitev.
Pregled rešitve
Kot storitev Windows prehod za koren vsebine uporabi svojo programsko mapo (appsettings*.json,
relativna pot shrambe); pod systemd velja WorkingDirectory. Račun storitve
potrebuje dostop za branje do programa in glavnega ključa ter dostop za pisanje do podatkovne mape s
skrbniško shrambo.
Konfiguracijo, glavni ključ, dovoljenja podatkovne mape in pravilo požarnega zidu nastavi ukaz
setup-host, isti, ki ga pokliče namestitveni paket (glejte
Ukazi na strežniku). Ročno morate opraviti
le kopiranje datotek in registracijo storitve.
Kateri račun storitve. Namestitveni paket uporabi navidezni račun
NT SERVICE\Wkl.Data.Gateway: ne potrebuje gesla, njegove pravice pa veljajo le za to storitev.
NT AUTHORITY\NetworkService deluje enako, vendar si ga deli veliko storitev; kar mu dovoljuje
podatkovna mapa, smejo tedaj tudi vse te storitve. Navidezni račun je mogoče razrešiti šele, ko je
storitev registrirana; zato storitev registrirate pred ukazom setup-host.
Izvedba
Windows (PowerShell kot skrbnik)
Objavljene datoteke kopirajte v programsko mapo:
$program = Join-Path $env:ProgramFiles 'Wkl\Data Gateway' New-Item -ItemType Directory -Force $program | Out-Null Copy-Item -Recurse .\publish\* $program
Registrirajte storitev, še ne da bi jo zagnali:
sc.exe create Wkl.Data.Gateway binPath= "`"$program\dbgwsvc.exe`"" start= auto obj= "NT SERVICE\Wkl.Data.Gateway"
Nastavite konfiguracijo, podatkovno mapo in glavni ključ. Brez
--certificateprehod posluša le nahttp://127.0.0.1:8434; HTTPS nato dodate po navodilih Nastavitev protokola HTTPS in potrdila:& "$program\dbgwsvc.exe" setup-host --program $program ` --data (Join-Path $env:ProgramData 'Wkl.Data.Gateway') --service-account 'NT SERVICE\Wkl.Data.Gateway'
Izhodna koda je
0. Ukaz zapišeappsettings.Production.jsonv programsko mapo, ustvari podatkovno mapo z dovoljenji le za skrbnike, sistem in račun storitve ter ustvarigeheim\hauptschluessel.key. To datoteko varnostno kopirajte zunaj strežnika.- Registrirajte vir dogodkov, da prehod piše v dnevnik dogodkov (Windows PowerShell 5.1):
New-EventLog -LogName Application -Source Wkl.Data.Gateway. - Zaženite storitev:
Start-Service Wkl.Data.Gateway. - Ustvarite prvega skrbnika; glejte Ustvarjanje prvega skrbnika.
- Preverite:
Invoke-RestMethod http://127.0.0.1:8434/health/liveodgovoriHealthy;Get-Service Wkl.Data.GatewaysporočiRunning.
Linux
- Ustvarite račun brez prijave (
useradd --system --no-create-home wkl-gateway), datoteke različice za Linux (linux-x64, ki jo ponudnik dobavi kot ločen arhiv; namestitveni paket vsebuje samo različico za Windows) kopirajte v/opt/wkl/gatewayin računu dajte pravico pisanja le v podatkovno mapo. Konfiguracijo zapišite sami vappsettings.Production.json: vsajKestrel:EndpointsinGateway:Stores potjo in glavnim ključem (glejte Konfiguracija);setup-hostLinuxa ne nastavi. Ustvarite datoteko enote
/etc/systemd/system/wkl-gateway.service:[Unit] Description=Wkl.Data.Gateway After=network-online.target [Service] Type=notify WorkingDirectory=/opt/wkl/gateway ExecStart=/opt/wkl/gateway/Wkl.Data.Gateway User=wkl-gateway [Install] WantedBy=multi-user.target
Brez razdelka
[Install]systemctl enableenoto zavrne.- Enoto zaženite z
systemctl enable --now wkl-gateway; dnevnik je v journalu (journalctl -u wkl-gateway).
Napotki
- Mapo, ki jo prehod ustvari sam, smeta brati le račun storitve in skrbniki; skrbniki dostop potrebujejo za ukaze na strežniku.
- Če prehod zaženete iz konzole, se vedenje ne spremeni.
- Brez registriranega vira dogodkov prehod teče naprej, vendar v dnevnik dogodkov ne piše ničesar; glejte Odpravljanje težav.