Come Auto-Ospitare Drone CI su un VPS (Guida Completa)
Auto-ospitare sistemi di integrazione e distribuzione continua può migliorare significativamente il tuo flusso di lavoro di sviluppo. Drone CI è un sistema CI open-source che si integra perfettamente con il tuo repository e fornisce un’interfaccia utente intuitiva per gestire le build. In questa guida, ti guideremo attraverso il processo di auto-ospitamento di Drone CI su un VPS.
Perché Utilizzare un VPS per Drone CI?
Utilizzare un VPS (Virtual Private Server) per ospitare Drone CI ti consente di avere il pieno controllo sul tuo ambiente. Questo è cruciale per gli sviluppatori che vogliono personalizzare le loro pipeline CI e mantenere i dati sensibili al sicuro. Di seguito è riportato un breve confronto di alcuni dei migliori fornitori di VPS adatti per ospitare Drone CI.
| Provider | Prezzo | Risorse | Ideale per |
|---|---|---|---|
| Contabo VPS | 5,99 EUR/mese | 4 GB RAM, 2 vCore | Utenti con budget |
| Hetzner Cloud | 4,15 EUR/mese | 2 GB RAM, 1 vCore | Progetti piccoli |
| DigitalOcean | 6 USD/mese | 1 GB RAM, 1 vCore | Startups |
| Vultr | 6 USD/mese | 1 GB RAM, 1 vCore | Flessibilità |
| Linode | 5 USD/mese | 1 GB RAM, 1 vCore | Principianti VPS |
Requisiti
Prima di cominciare, assicurati di avere:
- Un VPS: Scegline uno tra le opzioni sopra. Ad esempio, Contabo o Hetzner.
- Docker: Drone CI viene eseguito in un container Docker.
- Nome di Dominio (opzionale): Per accedere visivamente e in modo sicuro al server CI.
- Accesso a un repository GitHub o equivalente se vuoi configurare i webhook.
Passo 1: Configura il Tuo VPS
-
Accedi al tuo VPS: Usa SSH per accedere al tuo server.
ssh root@your-server-ip -
Aggiorna il sistema:
apt-get update && apt-get upgrade -y -
Installa Docker e Docker Compose:
apt-get install -y docker.io docker-compose -
Verifica che Docker sia installato correttamente:
docker --version
Passo 2: Installa Drone CI
-
Crea una directory per Drone:
mkdir -p /opt/drone cd /opt/drone -
Crea un file
.env: Crea un nuovo file chiamato.envnella directory/opt/dronecon i seguenti contenuti:DRONE_GITEA_SERVER=https://your-gitea-server.com DRONE_RPC_SECRET=your-rpc-secret DRONE_SERVER_HOST=your-drone-domain.com DRONE_SERVER_PROTO=https -
Crea un file
docker-compose.yml:version: '3' services: drone-server: image: drone/drone:latest ports: - 80:80 environment: - DRONE_GITEA_SERVER=https://your-gitea-server.com - DRONE_RPC_SECRET=${DRONE_RPC_SECRET} - DRONE_SERVER_HOST=${DRONE_SERVER_HOST} - DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} volumes: - drone-data:/data volumes: drone-data: -
Avvia Drone: Esegui il seguente comando per avviare il server Drone:
docker-compose up -d
Passo 3: Configura Drone CI
-
Accedi a Drone: Apri il tuo browser e vai su
http://your-drone-domain.com. Dovresti vedere la schermata di accesso di Drone CI. -
Accedi con il tuo account repository: Collega il tuo servizio Git.
-
Configura il tuo repository: Una volta effettuato l’accesso, puoi configurare quali repository vuoi automatizzare con Drone.
-
Crea un file
.drone.ymlnel tuo repository: Questo file contiene la configurazione della pipeline.
Domande Frequenti
Quali sono i requisiti di archiviazione per Drone CI?
Drone CI stesso non richiede molto spazio di archiviazione. La raccomandazione minima è di 1 GB, sufficiente per i log e i file di configurazione. Tuttavia, a seconda delle dimensioni del tuo codice sorgente e del numero di build, potresti dover considerare una dimensione del disco più grande. Inoltre, un utilizzo prolungato genererà più dati; quindi, è essenziale monitorare regolarmente l’archiviazione. Utilizza opzioni di gestione dei volumi all’interno di Docker per ottimizzare l’utilizzo dello spazio.
Posso integrare Drone CI con GitHub o GitLab?
Sì, Drone CI supporta l’integrazione con vari servizi di hosting di repository, tra cui GitHub, GitLab, Bitbucket e Gitea. Per configurarlo, visita la pagina di configurazione di Drone dopo aver effettuato l’accesso e seleziona il servizio Git desiderato. Assicurati di avere le autorizzazioni necessarie sui tuoi repository per consentire a Drone di creare webhook e accedere ai repository.
Come posso scalare la mia installazione di Drone CI?
Per scalare la tua installazione di Drone CI, puoi eseguire più istanze del server Drone dietro un bilanciatore di carico. Questa configurazione garantisce prestazioni migliori in caso di utilizzo intenso. Modifica il file docker-compose.yml per la scalabilità e considera di utilizzare un database PostgreSQL per persistenza e clustering. Consulta la documentazione ufficiale di Drone o risorse della community come r/selfhosted per strategie avanzate di scalabilità .
Conclusione
Auto-ospitare Drone CI su un VPS è un modo potente per migliorare la tua strategia CI/CD. Seguendo questa guida, hai impostato un ambiente funzionale su misura per le tue esigenze di sviluppo. Per ulteriori dettagli sulla scelta dei migliori fornitori di VPS per il tuo progetto, dai un’occhiata al nostro confronto completo dei VPS.