MAAT
Manager for Application & Applicative Task
Descrizione
Soute soluzioni per la gestione di
- esecuzione automatica task (es script SQL giornalieri di update)
- gestione applicazioni
- deploy/install
- update
- verifica e report versioni
Progetti / Componenti
Di seguito elencati i componeti del progetto Maat
Maat.Runner
Questo è il componente sviluppato come dotNet Core Console App (quindi distribuibile su Win/Linux/Mac) che tramite nssm diventerà il servizio in esecuzione principale.
Di base si aspetta di poter interagire con
- Una serie di DB applicativi (contenenti le apposite tabelle TaskList e TaskExe)
- Una serie di SW EgalWare installati locamente per verificare la versione
- Un set di servizi remoti (LiMan) per verificare licenze, scadenze, aggiornamenti disponibili
- Alcuni applicativi a contorno (sempre Maat.*) per gestire install, verifiche, ...
I principali task previsti sono
- Esecuzione "cron task" per poter verificare vari DB applicativi e i relativi task schedulati
- Verifica configurazione locale dei pacchetti da controllare (da file config? da DB? da Redis?)
- Verifica versioni locali applicativi
- Verifica versioni remote ufficiali (e licenziate...) degli applicativi
- Notifica utente degli aggiornamenti disponibili
- Download aggiornamenti
- Installazione aggiornamenti
Maat.Tray
Applicazione da TrayBar per notifica / interazione utente
Maat.Editor
Editor ad uso Egalware per inserire
- Elenco sw da verificare
- Versioni/licenze da controllare
- Modificare conf dei DB da controllare x Task
...to be defined, al suo posto si possono gestire i config files...
Installazione
Wix installer
E' stato inserito il progetto WIX x produrre un installer valido come msi windows da poter avviare tramite salt o a mano che possa occuparsi di installare tutot il necessario
Vedere qui per maggiori informazioni
- https://wixtoolset.org/
- https://wixtoolset.org/docs/intro/
- https://www.firegiant.com/docs/
- https://www.firegiant.com/docs/wix/tutorial/
- https://www.firegiant.com/docs/heatwave/
- https://www.firegiant.com/products/heatwave-build-tools/
Da completare procedura setup servizio, vedere qui:
- https://developingsoftware.com/wix-toolset-install-windows-service/#:~:text=Installing%20the%20WiX%20Toolset%201%20Download%20WiX%20Toolset,Once%20complete%2C%20click%20Exit%20to%20finish%20the%20setup.
- https://stackoverflow.com/questions/1942039/how-to-install-and-start-a-windows-service-using-wix
Infine va modificato CI/CD per
- compilare sw,
- produrre singlefileapp
- produrre installer
- rilasciarlo su nexus
Install manuale
Istruzioni installazione manuale
Per installare il servizio manualmente, avendo cura di operare dalla directory dove si trova nssm + applicativo
- nssm install servizio
./nssm.exe install Maat.Runner
- nssm edit servizio
./nssm.exe edit Maat.Runner
- nssm modifica parametri servizio
./nssm.exe set DisplayName Maat.Runner
vedere qui:
Altre modalità di gestione
- installer?
- Salt?
- Maat.Runner stesso?
...indicare istruzioni finali per installare i vari componenti...
Uso
Da definire istruzioni impiego... vedere con Marco
Roadmap
il rilascio prevede:
- 1.0: modulo Runner come servizio
- 1.1: gestione tray app
- 1.2: gestione versioni applicativi web + download
- 1.3: gestione applicativi win x notifica udpate
- 1.4: gestione applicativi win x esecuzione udpate (con utente x UAC)
- 1.5: notifica versioni/uso
- x.1: gestione reports anomalie?
- x.2: gestione pubblicitaria?
Note nuget
Poiché il pacchetto iniziale da distribuire come servizio windows richiede un deploy single application, è stato impostato il deploy/publish come x MAPO-MONO da dotNetCore come SingleFileApp. Ci sono stati problemi con realizzazione funzionalità (probabilmente x cambio catena dotnet da core 8.0 e possibilità compilazione AOT & co).
in particolare è risultato necessario aggiungere un file di conf x nuget nel progetto (nuget.config) per poter impiegare il nostro repository nexus privato ed autenticao seguendo le indicazioni di questi vari link:
- https://learn.microsoft.com/en-us/nuget/consume-packages/consuming-packages-authenticated-feeds
- https://learn.microsoft.com/en-us/nuget/reference/nuget-config-file
- https://stackoverflow.com/questions/67743458/how-to-authenticate-with-private-nuget-package-source-while-running-dotnet-resto
Versioni
| vers | data | note |
|---|---|---|
| 0.9.2404 | 2024.04.04 | Prima versione, inizio documentazione e inizio sw Runner da rendere servizio con nssm |
| 1.0.2404 | 2024.04.06 | Versione installata su IIS01 in manuale x test esecuzione task da DB |
| 1.1.2404 | 2024.04.10 | Versione Funzionante con task powershell x install/remove servizio (IIS01) |
| 1.1.2405 | 2024.05.24 | inizio gestione EFCore x update DB MySQL/MariaDB su linux |
Questa modifica online del testo serve per provare un Merge Conflict