Provisioning della Workstation
Questo repository contiene una serie di script per il provisioning automatizzato di una workstation basata su Ubuntu 24.04 LTS.
Setup e provisioning semplificato
Per iniziare il provisioning completo su una nuova macchina, puoi utilizzare uno dei seguenti metodi:
Metodo 1: Ideale per input interattivo (consigliato)
bash <(curl -sSL https://rebrand.ly/ftassi-workstation)Metodo 2: Alternativa classica (potrebbe richiedere download manuale)
curl -sSL https://rebrand.ly/ftassi-workstation | bashSe questo metodo non ti consente di inserire la password, usa il Metodo 1 o questo:
curl -sSL https://rebrand.ly/ftassi-workstation -o bootstrap.sh && bash bootstrap.shMetodo 3: Esecuzione non interattiva con password
MASTER_PASSWORD='tua_password' curl -sSL https://rebrand.ly/ftassi-workstation | bashLo script di bootstrap:
- Installa le dipendenze necessarie (git, gpg, git-crypt)
- Clona il repository nella directory corrente
- Esegue setup.sh per configurare sudo e sbloccare i file crittografati
- Avvia il processo di provisioning completo se richiesto
Nota importante: Ti verrà richiesto di inserire la master password. Questa è l'unico secret mnemonico necessario per il provisioning completo.
Esecuzione manuale di moduli specifici
Il provisioning installa i dotfiles, configura il sistema, crea distrobox per vari ambienti e installa applicazioni GUI di base. Se desideri eseguire solo porzioni specifiche del provisioning, puoi invocare direttamente gli script in modules/:
./modules/nome_modulo.shProvisioning delle Distrobox
Il provisioning crea due ambienti distrobox:
- nvim: per avere un ide neovim isolato e pronto all'uso.
- dev: per l'ambiente di sviluppo.
Dopo la creazione delle distrobox tramite main.sh, è necessario eseguire il provisioning interno manualmente.
Entrare nella distrobox ed eseguire:
distrobox enter nvim -- ./distrobox/nvim.sh
distrobox enter dev -- ./distrobox/dev.shGestione dei Secrets
I file sensibili sono crittografati con git-crypt.
Gli script encrypt.sh e decrypt.sh gestiscono la cifratura e la decifratura tramite gpg dei file prima
che il repository venga inizializzato con git-crypt. Ad esempio la chiave stessa di giy-crypt è cifrata con gpg.
Sono file di utility per la manutenzione del repository e non necessari al provisionig della macchina.
./encrypt.sh # Per criptare i file
./decrypt.sh # Per decriptare i fileLo script di utility repo.sh permette di eseguire lock e unlock del repository git-crypt utilizando la chiave locale.
## Conclusione
Dopo aver completato il provisioning, rimuovere il file dei sudoers temporanei:
```bash
sudo rm /etc/sudoers.d/zz_provisioning_<utente>Ora la workstation è pronta all'uso.
Testing con Docker
Per testare il processo di provisioning in un ambiente isolato, questo repository include un Dockerfile e Makefile per creare e gestire un container di test.
Comandi Makefile
make help # Mostra l'elenco di tutti i comandi disponibili
make build # Crea l'immagine Docker per il testing
make start # Avvia il container di test
make stop # Ferma il container di test
make bash # Apre una shell interattiva nel container
make run-setup # Esegue lo script setup.sh nel container
make run-main # Esegue lo script main.sh nel containerFlusso di testing tipico
- Crea l'immagine Docker:
make build - Avvia il container:
make start - Esegui il setup:
make run-setup(richiede la master password) oMASTER_PASSWORD=tuapassword make run-setup - Esegui il provisioning:
make run-main - Esplora il container:
make bash - Quando hai finito:
make stop
Questo ambiente di test permette di verificare che il provisioning funzioni correttamente senza modificare il sistema ospitante.