netgescon-day0/docs/support/SETUP-WORKSPACE-MACCHINE-LAN.md

206 lines
5.9 KiB
Markdown
Executable File

# Setup workspace macchine LAN
## Scopo
Questo runbook serve ad attivare rapidamente le altre macchine Linux della rete anche prima di avere Gitea ovunque.
L obiettivo minimo e semplice:
- tutti leggono gli stessi `docs/`
- tutti trovano gli stessi `scripts/ai/`
- ogni macchina ha uno spazio di lavoro locale coerente
- il lavoro distribuito parte subito senza copie manuali sparse
## Scelta pratica consigliata
Per la prima fase usare NFS.
Motivo:
- e gia dentro gli strumenti Linux base
- non richiede dominio
- funziona bene se hai uniformato utente e UID/GID tra le macchine
- e sufficiente per condividere manuali, indici e piccoli script
## Layout consigliato
### Macchina capofila
- nodo capofila: `192.168.0.200`
- repository Day0 locale: `/home/michele/netgescon/netgescon-day0`
- cartella LAN condivisa: `/srv/netgescon/shared-docs`
Contenuto condiviso minimo:
- `/srv/netgescon/shared-docs/docs`
- `/srv/netgescon/shared-docs/scripts/ai`
- `/srv/netgescon/shared-docs/exchange`
- `/srv/netgescon/shared-docs/modules`
### Macchine client
- mount condiviso: `/srv/netgescon/shared-docs`
- workspace locale: `/home/$USER/netgescon-lan-workspace`
Contenuto workspace locale minimo:
- `docs -> /srv/netgescon/shared-docs/docs`
- `scripts/ai -> /srv/netgescon/shared-docs/scripts/ai`
- `exchange -> /srv/netgescon/shared-docs/exchange`
- `modules/shared -> /srv/netgescon/shared-docs/modules`
- `notes/` opzionale per appunti temporanei locali
## Procedura rapida
### 1. Preparare il server share
Eseguire:
```bash
bash bootstrap_docs_lan_share.sh server /home/michele/netgescon/netgescon-day0 192.168.0.0/24 /srv/netgescon/shared-docs "docs,scripts/ai,app,config,routes,resources,tests"
```
Lo script prepara:
- la cartella `/srv/netgescon/shared-docs`
- la copia aggiornata di `docs/`
- la copia aggiornata di `scripts/ai/`
- la cartella `/srv/netgescon/shared-docs/exchange` per messaggi, handoff e materiale
- la cartella `/srv/netgescon/shared-docs/modules` per superfici di lavoro condivise
- la riga NFS da inserire in `/etc/exports`
- i comandi `exportfs` da lanciare con `sudo`
### 2. Abilitare davvero l export NFS sul server
Eseguire sulla macchina capofila:
```bash
sudo mkdir -p /srv/netgescon/shared-docs
echo '/srv/netgescon/shared-docs 192.168.0.0/24(ro,sync,no_subtree_check)' | sudo tee /etc/exports.d/netgescon-docs.exports
sudo exportfs -rav
sudo systemctl enable --now nfs-server
```
Se serve scrittura dai client sostituire `ro` con `rw`, ma la scelta iniziale consigliata e `ro`.
Se vuoi usare la share anche per lo scambio operativo tra agent, la variante consigliata e separare documentazione e scambio:
```bash
echo '/srv/netgescon/shared-docs 192.168.0.0/24(ro,sync,no_subtree_check)' | sudo tee /etc/exports.d/netgescon-docs.exports
echo '/srv/netgescon/shared-docs/exchange 192.168.0.0/24(rw,sync,no_subtree_check)' | sudo tee /etc/exports.d/netgescon-exchange.exports
sudo exportfs -rav
```
## 3. Preparare una macchina client
Eseguire:
```bash
bash bootstrap_docs_lan_share.sh client 192.168.0.200:/srv/netgescon/shared-docs /srv/netgescon/shared-docs /home/$USER/netgescon-lan-workspace
```
Lo script:
- crea il mount point
- stampa il comando `mount`
- crea il workspace locale minimo
- crea i symlink a `docs/` e `scripts/ai/`
Poi completare con:
```bash
sudo mount -t nfs 192.168.0.200:/srv/netgescon/shared-docs /srv/netgescon/shared-docs
```
Per rendere il mount persistente aggiungere una riga in `/etc/fstab`.
Esempio:
```fstab
192.168.0.200:/srv/netgescon/shared-docs /srv/netgescon/shared-docs nfs defaults,_netdev 0 0
```
Se monti anche la cartella di scambio in scrittura:
```bash
sudo mkdir -p /srv/netgescon/shared-exchange
sudo mount -t nfs 192.168.0.200:/srv/netgescon/shared-docs/exchange /srv/netgescon/shared-exchange
ln -sfn /srv/netgescon/shared-exchange /home/$USER/netgescon-lan-workspace/exchange-rw
```
## Struttura consigliata per la cartella exchange
Dentro `/srv/netgescon/shared-docs/exchange` conviene usare da subito:
- `handoff/`
- `incoming/`
- `outgoing/`
- `messages/`
- `artifacts/`
Comandi iniziali sul server:
```bash
sudo mkdir -p /srv/netgescon/shared-docs/exchange/{handoff,incoming,outgoing,messages,artifacts}
sudo chown -R michele:michele /srv/netgescon/shared-docs
```
## Struttura consigliata per i moduli condivisi
Dentro `/srv/netgescon/shared-docs/modules` puoi iniziare a depositare:
- `app/`
- `config/`
- `routes/`
- `resources/`
- `tests/`
Questa cartella serve a distribuire rapidamente superfici di lavoro coerenti finche la rete non e ancora tutta su Gitea.
## Procedura operativa capofila
Il nodo `192.168.0.200` fa tre cose:
1. aggiorna il repository Day0 autorevole
2. rigenera la share LAN con `bootstrap_docs_lan_share.sh server ...`
3. assegna ai client quali cartelle o moduli leggere prima di lavorare
## 4. Apertura workspace sulle altre macchine
Aprire in VS Code il path locale:
```bash
/home/$USER/netgescon-lan-workspace
```
Dentro il workspace l agente deve trovare subito:
1. `docs/README.md`
2. `docs/00-INDICE-LAVORO-DISTRIBUITO.md`
3. `docs/support/CONTINUITA-SVILUPPO-AGENT.md`
4. `docs/support/RETE-DOCS-E-AGENT-OPERATIVITA.md`
## Regole operative iniziali
1. una sola macchina aggiorna i docs sorgente della LAN
2. le altre macchine leggono dalla share e lavorano con gli stessi runbook
3. le note locali valgono solo come appunti temporanei
4. quando Gitea sara disponibile ovunque, la share LAN restera supporto o fallback, non sorgente finale
## Checklist minima per ogni nuova macchina
1. stesso utente Linux o UID/GID compatibili
2. mount NFS attivo
3. workspace locale creato
4. docs leggibili dal workspace
5. indice distribuito letto prima di iniziare il lavoro
## Criterio di successo
La fase LAN puo dirsi pronta quando:
1. almeno due macchine leggono la stessa cartella `docs/` condivisa
2. entrambe aprono lo stesso indice distribuito
3. i runbook vengono aggiornati solo sulla macchina capofila
4. il passaggio a Gitea non richiedera di ripensare la struttura workspace