Ga naar hoofdinhoud

Setup 1: Omgeving

De inrichting van een nieuwe IPROX OpenAPI omgeving gaat volgens de volgende stappen:

Het wordt aangeraden deze volgorde aan te houden.

1: Alleen voor de eerste Stage in de Release Pipeline, daarna wordt dezelfde Artifact in sequentiële volgorde gebruikt voor de overige Stages.

Mongo database en account

  1. Registreer mongo account in LastPass onder Shared-Headless (accountnaam=naam omgeving), genereer wachtwoord zonder symbols
  2. Maak user account in https://cloud.mongodb.com/; restrict access tot read-write op database (=accountnaam)
  3. Login op database als atlasAdmin, use de database en doe load("iprox_vw.js") en load("iprox_index.js") Of gebruik een client applicatie zoals Robo 3T of MongoDB Compass. (Daarmee kunnen de bestanden iprox_vw.js en iprox_index.js geopend en uitgevoerd worden vanuit de source code)

SQL database en account

  1. Ga naar de Elastic Pool
  2. Create database (naam=sqldb-[naam omgeving]), kies onder Additional Settings voor de Backup van sqldb-iprox_starter; Disable Azure Defender
  3. Login met management console (je moet je IP adres toegang geven)
  4. Maak een login aan (loginnaam=naam omgeving)
  5. Open een query in de nieuwe database en doe (na aanpassen van naam-omgeving)
CREATE USER iprox
FOR LOGIN [naam-omgeving]
WITH DEFAULT_SCHEMA = dbo
GO

EXEC sp_addrolemember 'db_owner', 'iprox'
GO
  1. Stop je sessie in de management console
  2. Verwijder je IP adres via de Firewall van iprox SQL Server
  3. Indien het een productieomgeving betreft, ga in Azure naar de SQL Server en kies Manage backups onder Settings. Selecteer de omgeving en kies onder tabblad Retention policies de actie Configure policies voor de juiste database. Na instellen en bevestigen moeten de volgende waardes aanwezig zijn:
DatabasePiTR BackupsWeekly LTR BackupsMonthly LTR BackupsYearly LTR Backups
sqldb-naam-omgeving7 Days5 Weeks3 MonthsKeep week 1 for 1 Year

App Service voor CMS

  1. Naam = app-[naam-omgeving]-cms
  2. Enable Application Insights en gebruik deze General Settings:
NaamWaarde
.NET Framework versionASP.NET V4.8
Platform64 Bit
Managed pipeline versionIntegrated
FTP stateDisabled
HTTP version2.0
Web socketsOff
Always onOff
ARR affinityOff
Remote debuggingOff
Client certificate modeIgnore
Certificate exclusion paths(leeg)
  1. Maak CNAME van naam-omgeving-cms.iproxapi.nl naar app-[naam-omgeving]-cms.azurewebsites.net.
  2. Zet TLS settings op HTTPS only.
  3. Pas de hostname naam-omgeving-cms.iproxapi.nl toe, inclusief koppelen van *.iproxapi.nl certificaat.
  4. Neem overige appsettings en connectionstrings over vanuit het template op Environment variables templates met aanpassing van database gegevens.
  5. Indien het een productieomgeving betreft, maak een nieuw deployment slot met een kloon van de instellingen.
  6. Indien het een productieomgeving betreft, stel de volgende applicatieinstelling in op het secundaire deployment slot: disable_hangfire_backgroundjobs met waarde true. Het vinkje Deployment slot setting moet ingeschakeld zijn.

Release pipeline voor CMS

Voor het toevoegen van een Stage aan een release pipeline kies het Iprox.Cms Headless 2.0 DEV of Iprox.Cms Headless 2.0 PROD template. Let op dat deze 2 vinken essentieel zijn:

Additional Deployment Options

  • Remove additional files at destination
  • Exclude files from the App_Data folder

Configuratie CMS

  1. Log in op het CMS met het standaard ip account (voer indien nodig het SQL statement UPDATE GebTab SET Eml='xxx@iprox.nl WHERE Log='ip' uit op de database om toegang te krijgen via wachtwoord opvragen).
  2. Voer onder Configuratie > Systeem de URL van het CMS in bij 'Basis internet adres'
  3. Voer onder Configuratie > Omgevingen de hostnames van CMS en API in voor de betreffende omgevingen bij 'Basis internet adres'
  4. Maak accounts aan voor jezelf en ten minste 1 collega en geef die dezelfde functie als het ip account (de conventie is dat de gebruikersnaam gelijk is aan het e-mail adres)
  5. Log in met je eigen account en disable het ip account

App Service voor API

  1. General settings
NaamWaarde
Stack.NET Core
Platform64 Bit
Managed pipeline versionIntegrated
FTP stateDisabled
HTTP version2.0
Web socketsOff
Always onOn
ARR affinityOff
Remote debuggingOff
Client certificate modeIgnore
  1. Overige settings conform template op Environment variables templates.
  2. Indien het een productieomgeving betreft, maak een nieuw deployment slot met een kloon van de instellingen.

Extra configuratie eigenschappen

Indien de basis URL voor Swagger afwijkt moet ook Documentation:RoutePrefix toegevoegd worden. Dit kan bijvoorbeeld de waarde api-docs bevatten.

Build Pipeline voor API

Deze stap hoeft per omgeving maar één keer uitgevoerd te worden. Daarna wordt dezelfde Artifact in de rest van de Release Pipeline voor de API omgeving gebruikt.

  1. Maak een nieuwe Build Pipeline aan met een toepasselijke naam van de omgeving op basis van de azure-pipelines.yml in de repository Iprox.OpenApi.Release.
  2. Pas de variabelen aan naar gelang de betreffende omgeving, zie iprox.open-api.release

Release pipeline voor API

  1. Indien het de eerste Stage in de release pipeline betreft, schakel Continuous deployment trigger in. Alle andere Stages komen er sequentieel achter en kunnen pas geactiveerd worden als de vorige geslaagd is.
  2. Vul tot slot de applicatieinstellingen devops.BuildId, devops.DeploymentId en devops.EnvironmentId in de instellingen van de App Service van het CMS. De waardes hiervan kunnen gevonden worden in de query string van de URL van respectievelijk de Build Pipeline, de Release Pipeline en het bewerken van stage in een Release.