Organizzazione e gestione del nuovo server
Questa pagina e' stata creata per la strutturazione della nuova macchina, in essa troverete una descrizione generale che ne delinea il funzionamento e il dettaglio di come funzionano i singoli aspetti.
Nella parte finale sono raccolte tutte le idee su applicativi, servizi e quant'altro che ci piacerebbe avere in funzione sulla nuova macchina.
HOST Mafalda
E' la macchina principale su cui gira una distro debian buster, ha due hard disk di 3T connessi in raid0 (md0 /boot - md1 all) nella parte md1 e stato creato un volume criptato a sua volta gestito con lvm ovvero un unico Volume groups (VGs - vg0) e al momento un unico Logical volume (LVs root) contenente la root / con dimensione di 300G.
La macchina principale e utilizzata per operare con macchine virtuali tramite libvirt con la classica gestione qemu/kvm.
Qui alcuni appunti sull'installazione
Il nome Mafalda è un omaggio a Quino, il disegnatore argentino morto in quei giorni.
Note
Salvo eccezioni la macchina HOST servira come ponte verso le VM
Cosa far girare sulla macchina host?
...
Tutte le modifiche "importanti" apportate alla macchina devo essere registrate e documentate, attualmente abbiamo una directory ~/documetation/ suddivisa in sottodirectory delle categorie sembra un buon metodo.
Esiste un modo migliore per documentare e tener traccia dei lavori/modificheu sul server?.
...
Problemi
Assenza gestione utenti.
Non esiste una gestione degli utenti, credo sia un problema per la personalizzazione del proprio accesso shell,script,variabili... e per la sicurezza visto che ti costringe ad avviare qualsiasi eseguibile con i massimi privilegi.
...
Organizzazione firewall.
Andrebbe ripensato il firewall.
Partendo da un buon layout andrebbe riscritto al momento vi sono registrate configurazioni base ma lo trovo scarno.
IPV6 e' gestito bloccando tutto. Rivedere. (mi sa che è stata risolta. Br.)
Introdurrei blocco di IP critici . (Blacklist tramite ipset)
Assenza di regole tra VM (vedi ebtables non settato) in generale bloccherei tutte le connessioni tra VM lasciando aperto solo quello che serve.
...
come gestire il firewall, a mano ? con ansible ? con uno script creato ad hoc ? con ufw ?
Assenza swap.
Manca una partizione o file per lo swap.
In generale avendo molta ram a disposizione il sistema non usa lo spazio di swap ma in merito avevo letto una documentazione tecnica (ho perso il link) che indicava come problematico assenza di swap.
In generale sembra che i sistemi unix like siano pensati per avere uno swap nella gestione della memoria virtuale e anche se non viene usata causa il molto spazio disponibile in ram potrebbero nascere dei problemi.
Di seguito alcuni link non esaustivi sull'argomento.
Sito 1 Sito 2 Sito 3 Sito 4 ...
Spazio VM.
Attualmente le macchine virtuali risiedono su file formato qcow2 all'interno di una directory della root.
Sarebbero da valutare altre soluzione che sfruttino meglio il gestore dei volumi LVM, dato che libvirt permette la gestione dello spazio tramite LVM.
...
VM Zaphoda (vecchia macchina)
E' la copia virtuale della precedente macchina reale, sostanzialmente non e' da modificare ed e' stata creata per preservare la continuita dei servizi.
Sara' da prendere come punto di partenza per la costruzione di una nuova macchina che gestira tutti i servizi in modo piu organico e sicuro.
VM Amelia (macchina per test)
E' la macchina virtuale creata per effettuare dei test di costruzione, ampliamento e sviluppo di quanto presente su Zaphoda volta a dargli una struttura migliore.
LAVORI IN CORSO
1. Stiamo testanto il funzionamento di traefik facendolo girare dentro un docker
2. Stiamo programmando un client mumble che passi lo stream audio di un canale direttamente ad icecast senza troppo passaggi e layout come attualmente usiamo per fare radio.
VM New Zaphoda (nuova macchina)
Attualmente non presente.
Sara' la nuova macchina virtuale che ospitera tutti i servizi presenti attualmente Zaphoda ma riorganizzati secondo criteri di sicurezza e innovazione.
Tutti divisi in conteiner e costruiti tramite ansible.
e' stato creato questo repository per metterci le configurazioni ansible:
* https://git.abbiamoundominio.org/unit/mafalda_playbooks
Lavori da fare sui servizi attuali per il porting alla nuova macchina:
* sostituire nginx con traefik che dovra' fare da reverse proxy per tutti i servizi (dockerizzati e non)
- che ascoltano sulla 80/443
* sito pelican
andra' creato un container nginx, partendo da immagine nginx ufficiale (?) oppure anche un webserver piu' piccino.
(il vantaggio di usare nginx e' che magari poi lo si puo' riutilizzare anche come reverse proxy per eventuali servizi non dockerizzati...?)
il sito sta tutto in git, c'e' solo da capire come fare il deploy. monterei /var/www dall'host dentro il container, stessa cosa per le configurazioni, se non tutto /etc/nginx quantomeno nginx.conf e i sites-enabled/available li monterei read-only dentro il container, in modo che sia piu' semplice modificare le configurazioni dal di fuori del container. (esiste gia' un ruolo in ansible pelican-website in zaphoda-playbook, e' da riadattare).
* uwsgi - per il wiki moin
da dockerizzare ed esporre sulla porta 80, non serve ssl
aggiungere il nostro tema
i contenuti del wiki andranno messi in un volume
* murmur - server mumble
da dockerizzare
non ho idea se gli serva un volume per gestire dei dati
deve parlare con icecast per mandargli uno stream (?)
deve parlare con mumble-web
* mumble-web
gia' dockerizzato, bisogna solo raccogliere il dockerfile e il docker-compose.yml
deve parlare con murmur
* gitea
da dockerizzare
deve parlare con ldap
deve parlare con postfix
(o il container deve contenere un microservizio per mandare messaggi)
* postgresql
da dockerizzare, al momento usato solo da gitea
nel caso in futuro altri servizi useranno postgresql capire se vogliamo una sola istanza oppure istanze dedicate
deve parlare con gitea
* ldap - contiene utenze dei vari servizi tipo wiki e git
in futuro potrebbe ospitare anche utenze di altri servizi
non credo vada dockerizzato, da capire dove metterlo
forse il posto migliore e' l'host, ma allora serve un po' di hardening ?
oppure dedicargli una piccola macchina virtuale ?
al momento deve essere interrogabile da gitea e da moinmoin
* quassel - bouncer per IRC
da dockerizzare ?
non so cosa gli serve esattamente
* postfix
al momento ci serve solo per mandare messaggi mi pare, potrebbe stare sull'host, chiuso all'esterno.
* icecast
da dockerizzare ?
non so cosa gli serve esattamente
* openpod
gia' dockerizzato
dobbiamo solo salvare in posto idoneo quello script che fa il deploy quando viene aggiornata l'immagine
e magari creare un ruolo ansible per eseguirlo
VM Experiment (nuova macchina per esperimenti)
Attualmente non presente. Si chamerà: 'Frank'.
Sara' la macchina virtuale dove testare software e fare esperimenti, ogni utente avra il suo accesso personalizzato.
Sara la macchina dove tenere processi aperti tipo connessioni a IRC o altro.
Sarebbe da testare altra distro linux, tipo Arch.
Tendenzialmente si puo' "rompere" dato che non ospita processi critici.
IDEE / PROPOSTE
Archivio storico documentazione
Descrizione
Creare sul server un archivio (dedicandoli un quantita X di spazio) di materiale video, pdf, audio e quant'altro che rispecchi il nostro sapere scambiato e condiviso nel tempo perche' ci pareva interessante, formativo o importante.
Interessante per tenere traccia di un percorso politico-tecnico che si e' formato nel tempo, da presentare ai nuovi arrivati e non solo, per chiarire e informare sulle nostre posizioni e scelte.
Archivio non sara un file sharing pubblico ma un sistema interno al gruppo.
Ad esempio sono stati condivisi dei documentari, libri ed altro averli a disposizione e associati ad una scheda testuale che contenga una breve descrizione, i motivi del perche' ci e' sembrato reilevante e vogliamo conservarlo.
Come criterio userei di metter in archivio le cose che abbiamo visto assieme, dunque il passaggio per l'archivio passa dalla pubblicazione.
Struttura
Da pensare.
Potrebbe essere un semplice ftp su docker o un infrastruttra web presistente sitele internet archive piu' adeguata allo scopo.
Oppure potrebbe essere il collaudato Seafile
TITOLO ALTRA PROPOSTA
Descrizione
...
Struttura
...