wiki:Documentatie/Ontwikkelaar/Systeembeheer/OpenAC3Testserver

TOC(heading=OpenAC3Testserver)? TOC(heading=Systeembeheer, sectionindex, compact, depth=3, allactive, Documentatie/Ontwikkelaar/Systeembeheer/)? TOC(heading=Ontwikkelaar, sectionindex, compact, depth=2, allactive, Documentatie/Ontwikkelaar/)? TOC(heading=Documentatie, sectionindex, compact, depth=1, allactive, Documentatie/)?

OpenAC3 Testserver

De server ten behoeve van het testen van de master branch van OpenAC3 is een Azure Virtual Machine. Voor gebruikers van OpenAC3 die de applicatie testen is een dagelijkse experimentele build van OpenAC3 te benaderen via https://openac3test.fenac.nl/.

Azure Virtual Machine

De virtual machine heet OpenAC3 en is te benaderen in de Azure portal onder de "standaardmap", als je daar toegang toe hebt gekregen. De resource groep waar de VM bij hoort met alle bijhorende Azure onderdelen heet OpenAC3_group. Vanuit Azure kan een bestand voor een RDP (Bureaublad op afstand) verbinding gedownload worden, of doe dat gewoon met de applicatie op je computer door te verbinden met computer 51.124.172.104, gebruiker OpenACBeheerder. De server heeft Windows Server 2012 R2 als besturingssysteem, er is maar 1 gebruiker. Wanneer je met RDP op de server ingelogd bent dan heb je een aantal tools beschikbaar vastgezet op de taakbalk: Google Chrome, Notepad++, Opdrachtprompt, Git Bash, OpenAC2, Firefox en Services. In het menu start zie je ook nog MSSQL Studio, ODBC bronbeheer, en meer.

Azure Database

In de resource groep is SQL Server openacdb in gebruik. Er kunnen databases aangemaakt worden vanuit de Azure portal of met SQL Server Management Studio. OpenAC3 maakt zelf geen database aan, daarom kopieer je een OpenAC2 database of je gebruikt OpenAC2 met een ODBC koppeling om de database in te richten bij de eerste start.

ODBC en Azure

Je kan de database van de testserver (op afstand) gebruiken met OpenAC2. Mogelijk moet je nog bij Azure je IP adres toegang geven. Configureer met het programma "ODBC-gegevensbronbeheer (32-bits)" een SQL Server koppeling met het "ODBC Driver XX for SQL Server" stuurprogramma. De server is te vinden op openacdb.database.windows.net en je logt in met SQL Server authenticatie, gebruiker Fenac. Aan te raden is de standaard database te veranderen naar de database waarvoor de koppeling opgezet wordt. Zet eventueel de taal van de berichten naar Nederlands. Op de testserver is voor de database in Azure een ODBC koppeling gedefinieerd. Koppeling "testdata" gebruikt database testdata met adaptatie ac_hoensbroek, van die laatste zijn medewerkers geanonimiseerd op basis van hun functie.

Applicaties

Om OpenAC3 te kunnen draaien zijn een aantal applicaties op de server geïnstalleerd.

Essentieel zijn:

  • Git - om de code op te halen en bij te werken
  • Node.js - installeer de afhankelijkheden voor het compileren van C/C++ modules ook (o.a. Chocolatey), daar kan de OpenAC3 software ook mee gebouwd worden. Node.js installeert dan:
    • Python3 - deze heb je na installatie niet echt meer nodig omdat er ook OpenAC2 met python2 op de server staat. Sterker nog, het staat in de weg dus ik heb het uitgeschakeld.
    • Visual Studio Build Tools - wordt ook gebruikt om de C# code te bouwen
    • webpack - maakt o.a. compacte javascript bestanden voor in wwwroot
    • vast nog wel meer, node.js is een vrij complete oplossing
  • .NET Core SDK 3.1 - nodig voor de applicatie

Best belangrijk

Handig maar niet essentieel zijn:

OpenAC3 Configuratie

De configuratie bestanden van OpenAC3 staan in C:\ProgramData\OpenACWeb\. Notepad++ onthoudt welke bestanden open waren toen het afgesloten werd, je kan daar meestal gelijk de configuratie bestanden van OpenAC3 zien.

appsettings.json
In appsettings.json is de database koppeling met Azure ingeregeld. Verschillende instellingen hebben fictieve waarden, zoals AGB code 12345678 die we aan Fenac toekennen. Waarden die er wel toe doen zijn Agb > AgbLocaties > Bestandsmap: C:\OpenACData\Documents en HTTPS > CertificateFile: C:\ProgramData\OpenACWeb\letsencrypt.pfx en HTTPS > CertificatePassword: ********.
hosting.json
Bevat de aangepaste regel: "urls": "http://*:80;https://openac3test.fenac.nl:443", waarmee http en https verkeer mogelijk is.
nlog.config
De configuratie voor logging wijkt iets af van de standaard. Bestanden komen in C:\OpenACData\logs\ te staan. Verder worden de berichten van Quartz.Core.QuartzSchedulerThread niet weggeschreven. Berichten van onderdelen van Microsoft komen vanaf niveau Debug terecht in "openac-alles-<datum>.log" maar niet in "openac-applicatie-<datum>.log". Berichten vanaf niveau Error worden naar een apart bestand "openac-errors-<datum>.log" geschreven.
web.config
Om de uitvoer naar System.Console.WriteLine() op te vangen is ... stdoutLogEnabled="true" stdoutLogFile="C:\OpenACData\logs\stdout" ... gespecificeerd.
messagequeue.json
Is niet aangepast.
zg_stamtabellen.json
Is niet aangepast.

Let's Encrypt / Certbot

Let ook even op het bestand C:\ProgramData\OpenACWeb\letsencrypt.pfx, dat is het https certificaat van https://openac3test.fenac.nl/ dat door de service gebruikt wordt en geconfigureerd staat in appsettings.json onder HTTPS. Dit bestand wordt elke maandag ververst met een geplande taak dat batch bestand C:\Users\OpenACBeheerder\Documents\letsencrypt.bat start. Er is ook een geplande taak voor Certbot om de basis certificaat bestanden bij te werken, dat krijg je bij de installatie van Certbot, maar die is uitgeschakeld en vervangen door de taak die het pfx bestand aanmaakt. Let op, daar staat een wachtwoord in. De certificaat bestanden van certbot staan in C:\Certbot\. Het certificaat is aanvankelijk aangemaakt met een commando dat lijkt op certbot certonly -d openac3test.fenac.nl --agree-tos -m tickets@fenac.nl --webroot waarbij voor webroot C:\OpenAC3\wwwroot ingevoerd is. Met Anywise is afgestemd dat openac3test.fenac.nl naar het IP adres van de server wijst.

OpenAC2 Configuratie

Configuratie van OpenAC2 is zo dat de applicatie met de starterkit in C:\OpenAC2\ geïnstalleerd is, en het werkt met ODBC koppelingen naar de Azure databases die zijn ingericht. De versie is ingesteld op development. Je kan OpenAC2 dus gewoon draaien op de testserver. In de adaptaties is ac_nederland wat aangepast om er een algemeen AC van te maken met database koppeling "Azure". Die veranderingen zijn niet gecommit omdat ac_nederland aangemaakt is voor iets anders! Configuratie bestanden van OpenAC2 staan in C:\Users\OpenACBeheerder\AppData\Roaming\OpenAC\. Met het script reset-password van OpenAC2 kunnen medewerkers (en admin) een ander wachtwoord krijgen.

Dagelijks OpenAC3 bouwen

De programmabestanden van OpenAC3 zijn te vinden in C:\OpenAC3 maar dat is eigenlijk een symlink. Dit heeft te maken met het dagelijks bouwen van OpenAC3.

OpenAC3 wordt elke dag opnieuw gebouwd (zie de Task Scheduler via Administrative Tools in het start menu). Dit wordt gedaan om 1:00 uur in de nacht met een geplande taak die batch bestand C:\Users\OpenACBeheerder\Documents\BUILDS\release.bat start. Dit batch bestand maakt een release met het release.py script van de broncode directory waarin je bouwt. Als dit script er in slaagt een zip bestand te maken dan wordt de OpenAC3 service gestopt, dan wordt met een ander batch bestand het zip bestand in C:\ uitgepakt, wordt de C:\OpenAC3 link opnieuw aangemaakt om naar de nieuwe versie te wijzen. De bestanden van de vorige versie worden weggegooid. De OpenAC3 service wordt daarna opnieuw gestart. Bekijk de batch bestanden in C:\Users\OpenACBeheerder\Documents\BUILDS. Het stoppen, vervangen en weer starten van de OpenAC3 service gebeurt dus alleen als het bouwen van een nieuwe versie slaagt. Wanneer de build niet slaagt zal er een logbestand achter gelaten worden.

De code is met git uitgecheckt in C:\OpenACWebCore\ op branch master. De gebruikte credentials zijn geregistreerd in de installatie van de Git software. Een kopie van de key bij visualstudio.com staat in "git creds.txt" in Documents. Eens in de zoveel tijd moet er een nieuwe key gemaakt worden.

Database

Er is een database met de naam 'testdata' ingericht gebaseerd op een back-up van AC Hoensbroek. Hierin zijn gevoelige gegevens weggehaald. De accounts van de werknemers zijn geanonimiseerd. Er zijn meer dan 100 dossiers, een lijst van dossiernummer en geboortedatum is in Teams Gebruikersreferentiegroep OpenAC bij de bestanden gezet (dossiers-testserver.xlsx).

Onderhoud

Onderhoud van de testserver is beschreven op de pagina onderhoud.

Certificaten SBV-Z aanmaken

Voor de testserver is een test-servercertificaat aangevraagd bij het UZI register. Dit kan je ook doen voor een certificaat voor thuis(werken). Een test certificaat vraag je op naam aan. Ieder van ons kan daarom zo’n testcertificaat aanvragen. Daar heb je een printer, pen en scanner voor nodig want zij vragen een formulier te ondertekenen. Dit vind je op https://www.uziregister.nl/softwareleveranciers/documenten/publicaties/2019/07/12/testset-met-servercertificaat

Verder heb je ook een bestand nodig dat een aanvraag voor ondertekenen is. Dat maak je met openssl.exe als volgt:

"C:\Program Files\Git\usr\bin\openssl.exe" req -new -newkey rsa:2048 -keyout server.key -out server.csr

Je kan ook "C:\OpenAC\bin\openssl\openssl.exe" gebruiken als je die van git niet hebt. (De details die ik opgaf zijn NL, Utrecht, Utrecht, FENAC, IT, openac3test.fenac.nl, tickets@…, en een wachtwoord voor server.key.)

Vervolgens stuur je server.csr op en bewaar je server.key veilig ergens. Als je mail terug krijgt dan krijg je een .txt bestand dat heet 'services-cert-<nummer>.txt' waarbij dat nummer het UZI nummer is. Je maakt een .pfx bestand dat OpenAC3 als certificaat in kan lezen als volgt:

"C:\Program Files\Git\usr\bin\openssl.exe" pkcs12 -export -in services-cert-*.txt -inkey server.key -out sbvz-testcertificaat.pfx -passout pass:SuPeRgEhEiM

Last modified 5 years ago Last modified on 07/14/21 09:24:09