Con il presente articolo si vuole illustrate quali sono le risorse azure coinvolte e il processo di attivazione dell'ambiente di Disaster Recovery nel caso di test o di disaster.
Azure:
- Location:
North Europe
- Resource Group:
CREDEM-revcom-log-ne (dedicata al Log analytics workspace)
CREDEM-revcom-mng-drs(dedicato alla vm di management + Gallery)
CREDEM-revcom-pflow-drs (dedicato all'app di pflow)
CREDEM-revcom-prd-drs2 (dedicato alle VM di produzione)
CREDEM-revcom-prd-drt2 (dedicato alle VM di test)
hub-dr-rg (dedicato al Firewall)
rgcredemtelnet-DR (dedicato alla VPN site to site)
Processo di attivazione:
- Accensione firewall: tramite automation account (autacc-revcom) eseguire il runbook "rb-revcom-start-stop-DR-firewall" premendo il comando "START" e inserendo "Start" nel campo "FWAction".
L'avvio del firewall richiederà 5 min circa.
Nel caso non fosse possibile avviare il firewall tramite automation account eseguire i seguenti comandi da Azure CLI:
$AzureContext = Set-AzContext -SubscriptionName "dataexpert"
$azfw = Get-AzFirewall -Name "hub-dr-firewall" -ResourceGroupName "hub-dr-rg” -DefaultProfile
$AzureContext$vnet = Get-AzVirtualNetwork -ResourceGroupName "hub-dr-rg" -Name "hub-dr-vnet" -DefaultProfile
$AzureContext$publicip1 = Get-AzPublicIpAddress -Name "hub-firewall-dr-publicip01" -ResourceGroupName "hub-dr-rg" -DefaultProfile
$AzureContext$publicip2 = Get-AzPublicIpAddress -Name "pip-interactive-prd-drs" -ResourceGroupName "hub-dr-rg" -DefaultProfile
$AzureContext$publicip3 = Get-AzPublicIpAddress -Name "pip-revcom-pflow-drs" -ResourceGroupName "hub-dr-rg" -DefaultProfile
$AzureContext$publicip4 = Get-AzPublicIpAddress -Name "pip-interactive-prd-drt" -ResourceGroupName "hub-dr-rg" -DefaultProfile
$AzureContext$azfw.Allocate($vnet,@($publicip1,$publicip2,$publicip3,$publicip4))
Set-AzFirewall -AzureFirewall $azfw -DefaultProfile $AzureContext
- Elastic Pool Space: Prima di procedere con il restore dei DB nei rispettivi Sql Server, è necessario impostare lo spazio degli elastic pool ad una quantità di GB sufficienti a contenere tutti i DB. Per fare ciò accedere in SQL Elastic Pool, selezionare l'elastic pool di interesse e accedere nella sezione "Configurazione", impostare "Data Max Size" dell'elastic pool (per vedere le dimensioni previste vedi tabella presente in SQL Server + Database + ElasticPool : Next Digital Wave)
- Restore DB su server SQL in DRT o DRS: procedere con la creazione di un nuovo DB in azure; durante la fase di creazione e dopo aver selezionato "Subscription" e "Resource Group" (CREDEM, CREDEM-revcom-prd-drxx) andare nel tab "Additional Settings" e selezionare "Use existing data: Backup"; selezionare il bk da cui procedere con il restore (fra quelli elencati sotto sqlcredemprddrs (North Europe)).
Tornare sul Tab Basic e verificare che le informazioni presenti siano corrette aggiungendo il db all'Elastic Pool corretto e impostando "Locally-redundant backup storage".
Lasciare inalterati la configurazione del Tab Networking e Security e procedere con la creazione.
Tale azione andrà fatta per tutti e 4 i DB (sqldbrevcomprdscaler, sqldbrevcomprdservices, sqldbrevcomprdinteractive, sqldbrevcomprdicm)
Il processo di restore potrebbe impiegare diverse ore in base alle dimensioni del db.
- Avviare la Vm di Management: cercare la vm di mangement (vm-revcom-mng-drs) e procedere con l'accensione.
- Accedere al client installato sulla vm di management "Inspire Designer" e procedere con l'autenticazione.
- Inserire l'ip del server (interactive o scaler) a cui ci si vuole collegare, l'utente (Admin) e la password.
- Accedere all'ICM explorer per editare il file di configurazione.
- Cercare il file Interactive/.config/configuration.json
- Selezionare il file "configuration.json" e selezionare "OPEN IN ASSOCIATED APPLICATION"
- Editare il file andando a modificare la sezione "Interactive", "Database", "Scaler" andando a inserire i riferimenti all'ambiente DRT o DRS; qui sotto un esempio del file.
{
"formatVersion" : "1",
"interactive" : {
"applicationUrl" : "https://ccmpla-gruppocredem-dtst.dataexpert.it/interactive/",
"temporaryArchiveExpirationTimeInHours" : 24,
"enableUserAdministration" : true,
"enableSystemUserAdministration" : true,
"enableInspireControl" : false,
"enableUserActivityTracking" : false,
"showCookiesInfo" : false,
"trustedDomains" : [ "localhost", "ccmpla-gruppocredem-dtst.dataexpert.it", "dataexpert.it", "https://ccmpla-gruppocredem-dtst.dataexpert.it/", "172.16.16.69", "172.16.16.37" ],
"reloadConfigurationFiles" : true,
"secretKeys" : {
"1" : "icm://Interactive/.config/salt"
},
"availableAuthoringLanguages" : [ ]
},
"http" : {
"xFrameOptions" : "SAMEORIGIN",
"trustedProxies" : { },
"contentSecurityPolicy" : {
"mode" : "ENABLED"
}
},
"database" : {
"driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver",
"url" : "jdbc:sqlserver://sqlcredemprddrt.credemprddrt.dns:1433;databaseName=sqldbrevcomprdinteractive",
"userName" : "usrdbrevcomprdinteractive",
"password" : "SAES1:dff99d85ebe37db3a403754cb1c44d0fbf1a52ab2b91e7fc0fd03b41eadc7aae9b663817b8e145d4b3c009b9eaa500fd5e3d0eb28f4fa345809a9a24c51a9e6401db9735662bb43a",
"useKerberos" : false,
"connectionPoolSize" : 40
},
"smtp" : {
"servers" : [ ]
},
"automation" : {
"servers" : [ ]
},
"scaler" : {
"servers" : [ {
"name" : "Scaler",
"url" : "https://scaler-gruppocredem-dtst.dataexpert.it/",
"userName" : "${env.scaler/ii-user}",
"password" : "${env.scaler/ii-passwd}",
"failRetryCount" : 3
} ]
},
"elasticSearch" : {
"type" : "NO"
},
"approvalProcess" : {
"administratorRoles" : [ "00024.CCMPLA.SYSINT" ]
},
"webServices" : {
"secretKey" : "default_secret_key"
},
"icm" : {
"states" : {
"approvalStates" : {
"approvalStates" : [ ]
}
}
},
"timeout" : {
"privateApi" : {
"lockingIpPeriodInMillis" : 60000,
"lockingIpMaxTriesInPeriod" : 1000
}
}
}
- Verificare connessione ai DB: Ripristinando il db importato dalla prodizione, ci potrebbero essere problemi con le utenze in quanto le utenze configurate per l'accesso ai vari DB hanno un SID differente dagli utenti presenti e configurati a livello di system (utenti propri dei server sql utilizzati per il DR).
Nel caso si verificassero problemi con la connessione al DB, eliminare gli utenti associati al DB e ricrearli.
Per risolvere questo problema alla base ed evitare di doverlo gestire ogni volta che si procede con il restore del db di produzione, sono stati modificati i SID degli utenti a livello system in modo che questi coincidano con il SID dell'utente presente e assegnato ai singoli DB (in questo modo una volta eseguito l'import dei DB dalla produzione, gli utenti e permessi importati coincideranno con gli utenti già presenti in SQL).
- Accendere le istanze dello scaleset: procedere con l'accensione delle istanze delle Virtual machine scale set di interactive e scaler (vmss-revcom-prd-drxx-interactive, vmss-revcom-prd-drxx-scaler); il numero delle istanze da avviare dipende dall'ambiente in cui si sta procedendo (per DRT sarà 1 istanza scaler e 1 istanza interactive, per DRS sarà 3 istanze scaler e 1 istanza interactive).
- Abilitare l'accesso SFTP: dallo storage account "strevcomprddrsblob" o "strevcomprddrtblob" accedere ai settings SFTP e selezionare "Enable SFTP"
- Verificare i servizi Quadient: tramite la vm di management (vm-revcom-mng-drs) raggiungibile al seguente indirizzo ip "172.16.19.4" da rete di Marnate o tramite connessione VPN, collegarsi alle istanze (tramite comandi powershell)
az login
az ssh vm --ip xx.xx.xx.xx
Verificare che i seguenti servizi siano Running:
[Interactive]
InspireInteractive: sudo systemctl status InspireInteractive.service
InspireProductionServer: sudo systemctl status InspireProductionServer-30354.service
InspireContentManager: sudo systemctl status InspireContentManager-30353.service
[Scaler]
InspireScaler: sudo systemctl status InspireScaler30600.service
InspireProductionServer: sudo systemctl status InspireProductionServer-30354.service
InspireContentManager: sudo systemctl status InspireContentManager-30353.service