Questo articolo vuole descrivere la struttura e eventauli configurazioni presenti sulla VM Linux di scaler.


Il sistema operativo è: Red Hat Enterprise ver 8.6

Nella cartella "data", sono presenti la cartella "installers" dove sono stati copiati i file di installazione e la cartella "Quadient" dove invece si trovano i servizi e le installazioni di essi.

Per quanto riguarda scaler, nella cartella "Quadient" troviamo le installazioni di "Inspire-Designer" e "InspireScaler".


Tutte le vm scaler hanno come particolarità il fatto di montate 2 repository di azure (Azure Blob store e Azure File share).

Qui il dettaglio relativo al Blob storage:


Per montare il blob storage da VM linux procedere installando i componenti necessari sulla VM.

Impostare una password di root sulla VM linux

Sudo Passwd 

Installare il repository.

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/8/packages-microsoft-prod.rpm

 Installare blobfuse

sudo yum install blobfuse

Creare una cartella temporanea da utilizzare come cache:

sudo mkdir /mnt/resource/blobfusetmp -p

sudo chown azureadmin /mnt/resource/blobfusetmp

touch fuse_connection.cfg

chmod 600 fuse_connection.cfg

 

Per permettere l'accesso al blob tramite l'identità gestita, aggiungere tale identità nella sezione Identity della VM

 

Aggiungere lo stesso utente nei RUOLI RBAC dello Storage account:

 

 

Aggiungere al file fuse_connect.cfg creato sulla VM linux le seguenti info:

 

accountName strevcomdev

authType MSI

containerName contblobrevcomdev

 

 

Creare un folder dove montare il blob "blobrevcomdev" in /mnt/

 Eseguire il seguente comando:

 sudo blobfuse /mnt/blobrevcomdev --tmp-path=/mnt/resource/blobfusetmp --config file=fuse_connection.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120 -o allow_other --log-level=LOG_DEBUG --pre-mount-validate=true

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Per poter montare il blobstorage all'avvio, creare uno script azuremount.sh in /mnt/ e inserire all'interno la stringa indicata qui sopra.

 

 

Impostare i permessi per tale script: chmod 777 azuremount.sh

Elevarsi come ROOT e andare ad editare il crontab inserendo l'esecuzione dello script

 Crontab -e 

Premere I per inserire la stringa

Premere ESC per uscire dall'edit

Inserire :wq per salvare e uscire

 

Verificare che il comando sia stato inserito correttamente con il comando crontab -l

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Per smontare il blobstorage 

sudo fusermount -u "folder montata"




Qui il dettaglio relativo al File storage:

Installare sulla VM  cifs-util package

sudo dnf install cifs-utils


Una volta configurata il file share su azure copiare lo script per montare la risorsa:

 

 

 

 

Incollare lo script nella VM che deve montare la risorsa.


Una volta verificato che la risorsa è stata montata correttamente per poter montare la risorsa all'avvio, inserire quanto segue nello script /mnt/azuremount.sh 


sudo mount -t cifs //strevcomdev.file.core.windows.net/sharerevcomdev /mnt/sharerevcomdev -o credentials=/etc/smbcredentials/strevcomdev.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30

 

 

 

Riavviare la VM e verificare il corretto funzionamento.



Mount FIle share per gli ambienti DRT e DRS 

Questa soluzione è stata applicata allo scaler di DRT e DRS:

Visto che il sistema carica la configuraizone dell'applicativo con dei valori preimpostati, per poter soddisfare sia l'applicativo scaler che le functional app che gestiscono la movimentazione dei file, si è reso necessario eseguire una doppia mappatura (che puntano allo stesso repository ma mappate con nomi differenti).

 

Il mount point /mnt/sharerevcomprddrs è utilizzato dalle function app e da alcuni script eseguiti 

Qui un esempio del file di mount di DRS:

[ /mnt/azuremount.sh]

sudo blobfuse /mnt/blobrevcomprdin/ --tmp-path=/mnt/resource/blobfusetmpin --config-file=/home/azureadmin/fuse_connection_contblobrevcomprddrsin.cfg -o attr_timeout=240 -o entry_timeout=240 -o negative_timeout=120 -o allow_other --log-level=LOG_DEBUG --pre-mount-validate=true


sudo mount -t cifs //strevcomprddrsshare.file.core.windows.net/sharerevcomprddrs /mnt/sharerevcomprddrs -o credentials=/etc/smbcredentials/strevcomprddrsshare.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30


sudo mount -t cifs //strevcomprddrsshare.file.core.windows.net/sharerevcomprddrs /mnt/sharerevcomprd -o credentials=/etc/smbcredentials/strevcomprddrsshare.cred,dir_mode=0777,file_mode=0777,serverino,nosharesock,actimeo=30

 

 


Questi i servizi presenti in scaler:

sudo systemctl status InspireScaler30600.service

sudo systemctl status InspireProductionServer-30354.service

sudo systemctl status InspireContentManager-30353.service



Elenco file con configuraioni varie:

/data/Quadient/InspireScaler/config/configuration.xml --> contiene utente, password, porta, e stringa JDBC per connessione al DB SQL

/data/Quadient/InspireScaler/bin/scaler.service --> contiene configurazione per l'avvio o l'arresto del servizio 



Impostazioni Custom Scaler:

  1. Settaggio degli hard limits:
  2.  

systemctl set-property InspireProductionServer-30354.service CPUQuota=320%

systemctl set-property InspireProductionServer-30354.service MemoryLimit=10G

systemctl daemon-reload

 

  1.  
  2. Creazione di un cronjob per l'eliminazione dei file temporanei dentro /data/tm
  3.  

Comandi:

crontab -e 

Questo è il testo da inserire (il crontab viene aperto con VI, per inserire il testo digirare "i" per uscire dalla modalità testo "esc", per salvare il testo ":wq"):

#Clean Inspire temp files

@reboot /usr/bin/find /data/tmp/ -type f -mtime +1 -exec rm -f {} \;

 

  1.  
  2. Creazione di uno script di cancellazione dei file temporanei dentro /data. Lo trovi in allegato. Va copiato nella cartella /data. Una volta copiato è necessario renderlo eseguibile:
          chmod +x clean-tmp-files.sh
  3.  

 

  1.  
  2. Apertura della porta 30354 (tcp) sul firewall locale: 
  3.  

 

firewall-cmd --permanent --add-port=--30354/tcp



Pulizia LOG scaler:


  • Stop service 

sudo systemctl stop InspireScaler30600.service

sudo systemctl stop InspireProductionServer-30354.service

sudo systemctl stop InspireContentManager-30353.service


  • Move in the the logs folder (/data/Quadient/InspireScaler/logs)
  • The files to check are 


  • If are necessary to empty the file, it's will possible with the following command: 

echo "" > NameOfTheLog.log

 

  • The most info is always in the server.log - in case of any issues with the app, check this log first.  


  • Cleaning IPS and ICM logs 

 


  • Now start the service in opposite order as were stopped.  

sudo systemctl start InspireContentManager-30353.service

sudo systemctl start InspireProductionServer-30354.service

sudo systemctl start InspireScaler30600.service


  • Verify that logs are getting filled correctly