Passa al contenuto principale
Versione: 0.5.4

GitLab CE su Aruba Cloud

Esegui il deployment di GitLab Community Edition — una piattaforma DevOps completa con hosting Git, CI/CD, issue tracking e container registry — su Aruba Cloud tramite Terraform e cloud-init.

Versione provider: arubacloud/arubacloud ~> 1.0 | Terraform: ≥ 1.9


Introduzione​

GitLab CE è un'alternativa self-hosted a GitHub e GitHub Actions. Questo esempio distribuisce:

  • GitLab CE tramite il pacchetto Omnibus ufficiale su una singola VM
  • TLS Let's Encrypt automatico quando viene fornita una letsencrypt_email
  • Porta SSH separata 2222 per le operazioni git (la porta 22 è riservata all'accesso admin)
  • Interfaccia web, runner CI/CD (da configurare separatamente) e container registry pronti all'uso

Prima il DNS: Con HTTPS, GitLab richiede un certificato Let's Encrypt durante l'installazione. Imposta il tuo record A per gitlab_hostname → IP pubblico della VM prima di eseguire terraform apply.


Panoramica dell'architettura​


Infrastruttura creata​

RisorsaPattern del nomeDescrizione
arubacloud_projectgitlab-prodContenitore del progetto
arubacloud_vpcgitlab-prod-vpcVirtual Private Cloud
arubacloud_subnetgitlab-prod-subnetSubnet base
arubacloud_securitygroupgitlab-prod-vm-sgSecurity group
arubacloud_securityrulegitlab-prod-vm-sshRegola ingress SSH admin (22)
arubacloud_securityrulegitlab-prod-vm-httpRegola ingress HTTP (80)
arubacloud_securityrulegitlab-prod-vm-httpsRegola ingress HTTPS (443)
arubacloud_securityrulegitlab-prod-vm-gitsshRegola ingress Git SSH (2222)
arubacloud_elasticipgitlab-prod-vm-eipIP pubblico della VM
arubacloud_blockstoragegitlab-prod-bootDisco di boot da 100 GB (Performance)
arubacloud_keypairgitlab-prod-keypairChiave pubblica SSH
arubacloud_cloudservergitlab-prod-vmVM CloudServer

Costo mensile stimato​

RisorsaSpecificheCosto stimato/mese
VM CloudServerCSO8A16 — 8 vCPU / 16 GB~€80
Disco di boot100 GB Performance~€15
Elastic IP—~€3
Totale~€98/mese

Requisiti​

  • Terraform ≥ 1.9
  • ArubaCloud Terraform Provider ~> 1.0
  • Un account ArubaCloud con credenziali API OAuth2
  • Una coppia di chiavi SSH
  • Un nome di dominio con controllo DNS (necessario per HTTPS / Let's Encrypt)

Variabili​

Obbligatorie​

VariabileDescrizione
arubacloud_client_idClient ID OAuth2 di ArubaCloud
arubacloud_client_secretClient secret OAuth2 di ArubaCloud
ssh_public_keyContenuto della chiave pubblica SSH
gitlab_hostnameFQDN pubblico per GitLab (es. gitlab.example.com)
gitlab_root_passwordPassword iniziale per l'utente root (min 8 caratteri)

Opzionali​

VariabileDefaultDescrizione
letsencrypt_email""Email per Let's Encrypt — abilita TLS automatico quando impostato
app_name"gitlab"Nome breve usato in tutti i nomi delle risorse
environment"prod"Etichetta dell'ambiente
location"ITBG-Bergamo"Regione ArubaCloud
zone"ITBG-1"Zona di disponibilità
billing_period"Hour""Hour" o "Month"
vm_flavor"CSO8A16"Flavor del CloudServer (minimo consigliato)
vm_disk_size_gb100Dimensione del disco di boot in GB (min 50)
ssh_cidr"0.0.0.0/0"CIDR per accesso SSH admin

Output​

OutputDescrizione
gitlab_urlURL dell'interfaccia web di GitLab
vm_public_ipIndirizzo IP pubblico della VM
ssh_commandComando SSH admin
git_ssh_cloneEsempio URL clone SSH (porta 2222)

Istruzioni di deployment​

1. Clona e naviga​

git clone https://github.com/arubacloud/terraform-arubacloud-examples.git
cd terraform-arubacloud-examples/gitlab

2. Configura le variabili​

cp terraform.tfvars.example terraform.tfvars

Imposta gitlab_hostname sul tuo FQDN. Imposta letsencrypt_email per abilitare HTTPS con TLS automatico.

3. Configura il DNS prima dell'apply (solo HTTPS)​

Se usi letsencrypt_email, crea il record DNS A per gitlab_hostname → Elastic IP prima di eseguire apply.

4. Esegui il deployment​

terraform init
terraform plan
terraform apply

Il bootstrap richiede circa 5–10 minuti (più lungo con Let's Encrypt).

5. Accedi​

Naviga all'output gitlab_url e accedi con:

  • Nome utente: root
  • Password: valore di gitlab_root_password

Clone Git via SSH​

GitLab CE è in ascolto per le operazioni git SSH sulla porta 2222 (la porta 22 è riservata per SSH admin). Configura il tuo client SSH:

Host gitlab.example.com
HostName gitlab.example.com
Port 2222
User git

Poi clona normalmente con git clone git@gitlab.example.com:<user>/<project>.git.


Riferimenti​