Show pageOld revisionsBacklinksAdd to bookExport to PDFBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ===== Struttura server ===== Partendo da un fissato root path, al esempio ''/livenet'', vediamo la struttura del server. E' una descrizione minimale, che verrà approfondita nel seguito. <code> drwxr-xr-x 9 root root 4096 Nov 18 14:51 . drwxr-xr-x 23 root root 4096 Oct 24 08:24 .. drwxr-xr-x 7 root root 4096 Oct 9 09:00 aux drwxr-xr-x 8 root root 4096 Nov 13 12:38 .git drwxr-xr-x 10 root root 4096 Oct 31 13:25 images drwxr-xr-x 4 root root 4096 Nov 13 11:57 overlay drwxr-xr-x 11 root root 4096 Oct 31 08:16 releases drwxr-xr-x 2 root root 4096 Nov 13 12:06 scripts drwxrwxr-x 29 root root 4096 Oct 2 15:20 vms -rw-r--r-- 1 root root 408 Sep 23 09:12 .env -rw-r--r-- 1 root root 405 Aug 27 08:48 env.sample -rw-r--r-- 1 root root 449 Sep 24 15:07 .gitignore -rw-r--r-- 1 root root 0 Sep 23 09:12 .init_ok -rw-r--r-- 1 root root 2156 Aug 27 08:48 README.md -rw-r--r-- 1 root root 5167 Sep 18 16:59 Taskfile.yml </code> * ''aux'' contiene tutto ciò che non è direttamente collegato ad una immagine livenet. Ad esempio, il collettore dei dati, chè è una utility, ma la cui assenza non pregiudica il funzionamento del sistema. * ''images'' contiene le definizioni dei vari dipartimenti, quindi files, scripts, etc... * ''overlay'' è la directory che contiene la definizione minimale di livenet, ovvero tutto ciò che è comune ai vari dipartimenti e che altrimenti dovrebbe essere replicato in ciascuno * ''releases'' contiene le releases dei vari dipartimenti * ''scripts'' sono gli script di gestione del sistema che vengono richiamati dai task * ''vms'' mantiene tutte le macchine virtuali, essenzialmente windows, che possono essere avviate nei client. * ''.env'' è il file di configurazione generale dei vari dipartimenti * ''Taskfile.yml'' contiene tutte le descrizioni dei task possibili ==== aux ==== Contiene tutto ciò che non è essenziale al funzionamento di livenet, principalmente utilità di sistema. * [[livenet:10_data_collector|Container collettore dati]] * [[livenet:10_rsyslog_container|Container syslog]] * Script ''post-merge'' per sistemare i permessi critici ad ogni ''git pull'' ==== images ==== Ogni subdirectory, della quale riporto solo gli elementi di interesse, ha di base la seguente struttura: <code> drwxr-xr-x 1 kreen kreen 74 27 set 08.03 conf drwxr-xr-x 1 kreen kreen 60 11 set 13.19 overlay.all drwxr-xr-x 1 kreen kreen 12 12 set 17.47 overlay.local drwxr-xr-x 1 kreen kreen 24 7 ott 16.09 runtime drwxr-xr-x 1 kreen kreen 68 27 set 08.03 scripts drwxr-xr-x 1 root root 0 5 ott 12.08 setup -rw-r--r-- 1 kreen kreen 489 24 ott 09.49 docker-compose.yml -rw-r--r-- 1 kreen kreen 767 27 set 08.03 Dockerfile -rw-r--r-- 1 kreen kreen 394 8 ott 09.21 .env </code> * ''conf'' contiene file di configurazione, ad esempio la lista dei pacchetti specifici dell'immagine * ''overlay.all'' è la directory che contiene la configurazione comune a tutte le istanze * ''overlay.local'' è la directory con contiene la configurazione specifica per l'istanza, per esempio i profili, e ha la precedenza su ''overlay.all'' * ''runtime'' è usata in sviluppo, non ha impiego in produzione * ''scripts'' sono gli script di gestione per la costruzione dell'immagine * ''setup'' contiene file e pacchetti che vengono installati nell'immagine (per esempio *.deb) * ''docker-compose.yml'' dell'immagine * ''Dockerfile'' dell'immagine * ''.env'' variabili ambiente specifiche dell'immagine ==== Oerlay ==== Questa directory contiene tutto ciò che va inserito nell'immagine durante la costruzione e i commit. Viene fatta una copia 1:1 nella root dell'immagine docker. Evidenzio cheil contenuto è comune a tutte le immagini, viene fatto un //bind// in ''/etc/fstab'' con ''./images/$NOMEIMMAGINE/overlay.all'' per aggirare i limiti di docker, che non consente di accedere alle directory superiori. ==== releases ==== Ogni sotto directory contiene gli archivi tgz delle immagini da installare e degli upgrade. Viene fatto un bind di volume nel ''docker-compose.yaml'' dell'immagine ''live'' ed esportato in sola lettura dal server NFS della stessa. ==== scripts ==== Contiene gli script: * ''build.sh'' che costruisce una full image di un dipartimento * ''commit.sh'' crea una //diff// ovvero un archivio incrementale e relativa immagine docker, partendo da un container in esecuzione e agendo sulle sole differenze rispetto all'immagine da cui è stato creato il container. ==== .env ==== * Unordered List ItemVariabili ambiente generali * ''ROOT_PATH=/xyz'' la radice del progetto, usata come directory basename * ''IMG_PATH="${ROOT_PATH}/images"'' è la radice che contiene le definizioni dei dipartimenti * ''REL_PATH="${ROOT_PATH}/releases"'' punta alla radice delle releases * ''VMS_PATH="${ROOT_PATH}/vms"'' la radice del repository delle macchine virtuali * ''LIVENET_SERVER=192.168.1.10'' è l'ip dell'host dove è in esecuzione il server livenet * ''LIVENET_PORT=2049'' la porta utilizzata dal server NFS. Tipicamente la 2049, ma può essere modificata. * ''SYSLOG_SERVER=192.168.1.10'' autoesplicativo * ''SYSLOG_PORT=513'' * ''_docker="docker"'' container runtime, che può essere anche ''podman'' * ''_compose="docker compose"'' * ''DEVELOP=0'' usato in sviluppo, se messo a ''1'' nell'immagine non viene copiato il software non necessario (ad esempio matlab). usato nel ''Dockerfile'' projects/livenet/01_struttura_server.txt Last modified: 2024/12/11 12:52by igor