Next revision | Previous revision |
projects:livenet:01_struttura_server [2024/12/11 11:09] – created igor | projects:livenet:01_struttura_server [2024/12/11 12:52] (current) – [Taskfile.yml] igor |
---|
* [[livenet:10_rsyslog_container|Container syslog]] | * [[livenet:10_rsyslog_container|Container syslog]] |
* Script ''post-merge'' per sistemare i permessi critici ad ogni ''git pull'' | * 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'' |
| |