Passa al contenuto principale
Versione: Next

Ollama su Aruba Cloud

Distribuisci Ollama — una piattaforma di inferenza LLM locale — su Aruba Cloud tramite Terraform e cloud-init. Esegui modelli linguistici di grandi dimensioni (LLama, Mistral, Gemma, ecc.) direttamente su CPU senza richiedere una GPU.

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


Introduzione​

Ollama rende l'esecuzione di LLM in locale semplice come ollama run llama3.2. Fornisce un'API REST compatibile con OpenAI, consentendo la sostituzione diretta di OpenAI nelle applicazioni esistenti. Questo esempio distribuisce:

  • Ollama installato tramite lo script di installazione ufficiale come servizio systemd
  • API REST collegata a tutte le interfacce (porta 11434), limitata a api_cidr
  • Pre-caricamento opzionale dei modelli al momento del bootstrap

Avviso risorse: Gli LLM sono intensivi in memoria. Un modello da 7B richiede ~4–6 GB di RAM libera, uno da 13B ~8–10 GB e uno da 70B ~40+ GB. Pianifica il tuo vm_flavor di conseguenza.


Panoramica dell'architettura​


Infrastruttura creata​

RisorsaPattern nomeDescrizione
arubacloud_projectollama-prodContenitore progetto
arubacloud_vpcollama-prod-vpcVirtual Private Cloud
arubacloud_subnetollama-prod-subnetSubnet di base
arubacloud_securitygroupollama-prod-vm-sgSecurity group
arubacloud_securityruleollama-prod-vm-sshIngresso SSH
arubacloud_securityruleollama-prod-vm-apiAPI Ollama TCP 11434
arubacloud_elasticipollama-prod-vm-eipIP pubblico VM
arubacloud_blockstorageollama-prod-bootDisco di avvio 100 GB (Performance)
arubacloud_keypairollama-prod-keypairChiave pubblica SSH
arubacloud_cloudserverollama-prod-vmCloudServer VM

Costo mensile stimato​

RisorsaSpecificheCosto/mese stimato
CloudServer VMCSO8A16 — 8 vCPU / 16 GB~€55
Disco di avvio100 GB Performance~€15
Elastic IP—~€3
Totale~€73/mese

I modelli più grandi richiedono l'aggiornamento a una VM con più RAM (e un costo corrispondentemente più elevato).


Requisiti​

  • Terraform ≥ 1.9
  • ArubaCloud Terraform Provider ~> 1.0
  • Un account ArubaCloud con credenziali API OAuth2
  • Una coppia di chiavi SSH

Variabili​

Obbligatorie​

VariabileDescrizione
arubacloud_client_idClient ID OAuth2 ArubaCloud
arubacloud_client_secretClient secret OAuth2 ArubaCloud
ssh_public_keyContenuto della chiave pubblica SSH

Opzionali​

VariabileDefaultDescrizione
app_name"ollama"Nome breve usato in tutti i nomi delle risorse
environment"prod"Etichetta ambiente
location"ITBG-Bergamo"Regione ArubaCloud
zone"ITBG-1"Zona di disponibilità
billing_period"Hour""Hour" o "Month"
vm_flavor"CSO8A16"Flavor CloudServer
vm_image"LU22-001"Immagine disco di avvio (Ubuntu 22.04 LTS)
vm_disk_size_gb100Dimensione disco di avvio in GB (min 50 GB)
ssh_cidr"0.0.0.0/0"CIDR per SSH
api_cidr"0.0.0.0/0"CIDR per la porta API REST 11434 — limita ai tuoi server applicativi
preload_models[]Modelli da scaricare al bootstrap (es. ["llama3.2"])

Output​

OutputDescrizione
ollama_urlURL API REST Ollama
vm_public_ipIndirizzo IP pubblico della VM
ssh_commandComando SSH per connettersi alla VM
health_checkComando curl per elencare i modelli disponibili

Istruzioni di distribuzione​

1. Clona e naviga​

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

2. Configura le variabili​

cp terraform.tfvars.example terraform.tfvars

Limita l'accesso all'API e opzionalmente pre-scarica i modelli:

api_cidr = "10.0.0.0/8" # CIDR del tuo server applicativo
preload_models = ["llama3.2", "nomic-embed-text"]

3. Distribuisci​

terraform init
terraform plan
terraform apply

Il bootstrap richiede 2–5 minuti (più il tempo di download del modello — un modello da 7B è ~4 GB).

4. Verifica​

curl http://$(terraform output -raw vm_public_ip):11434/api/tags

5. Esegui un modello​

ssh ubuntu@$(terraform output -raw vm_public_ip)
ollama run llama3.2

Modelli disponibili​

# Sfoglia tutti i modelli disponibili
ollama list

# Modelli popolari
ollama pull llama3.2 # Meta Llama 3.2 3B — veloce, bassa RAM
ollama pull llama3.1 # Meta Llama 3.1 8B — bilanciato
ollama pull mistral # Mistral 7B
ollama pull codellama # LLaMA ottimizzato per il codice
ollama pull nomic-embed-text # Modello di embedding testuale (per RAG)
ollama pull gemma2 # Google Gemma 2 9B

Raccomandazioni di sicurezza​

  1. Limita sempre api_cidr. Ollama non ha autenticazione integrata. Una porta 11434 aperta consente a chiunque di eseguire modelli ed esaurire le risorse del server.

Riferimenti​