Vai al contenuto

Automazione e Infrastructure as Code

Per una prima VM è sufficiente navigare in Horizon e nel Cloud Services Portal, ma per un'infrastruttura riproducibile serve il codice. Questa pagina presenta i tre percorsi di automazione supportati: l'OpenStack CLI (OSC), Terraform e Ansible.

Prerequisiti

  • Una workstation Linux (o una VM) con accesso in uscita all'API OpenStack sulla porta 443.
  • Conoscenze di base della shell.
  • Un Application Credential da Horizon (vedere sotto).

1. Ottenere un Application Credential

Per qualsiasi automazione servono credenziali che non richiedono un accesso interattivo. Gli Application Credentials sono l'opzione consigliata: sono limitati al progetto, revocabili e non espongono la Sua password Horizon.

In Horizon: Identity → Application Credentials → Create Application Credential. Scarichi il file clouds.yaml generato e lo posizioni in ~/.config/openstack/clouds.yaml.

Salvi subito il segreto

Il Secret dell'Application Credential viene mostrato una sola volta. Se lo perde, deve creare un nuovo Application Credential.

2. Installare l'OpenStack CLI (OSC)

OSC unifica i comandi di calcolo, identità, immagini, archiviazione a oggetti e archiviazione a blocchi in un'unica shell. Consigliamo di installarlo con uv, che funziona in entrambe le regioni.

curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool update-shell
curl https://opendev.org/openstack/requirements/raw/branch/stable/2025.1/upper-constraints.txt -fsSL -o /tmp/upper-constraints-2025.1.txt
uv tool install --python 3.12 python-openstackclient -c "/tmp/upper-constraints-2025.1.txt"

La sequenza completa dei comandi con tutti i client dei servizi si trova nella guida all'installazione.

Imposti OS_CLOUD=openstack (in corrispondenza della chiave di primo livello nel Suo clouds.yaml) e verifichi:

openstack image list

Guida completa all'installazione di OSC

3. Distribuire con OSC

Una distribuzione di VM in un solo comando:

openstack server create vm-u2404-az2 \
   --image "Ubuntu 24.04" \
   --flavor m1.small \
   --key-name foo-key \
   --network foo-net \
   --security-group default \
   --availability-zone ch-zh1-az2

4. Distribuire con Terraform

Terraform è il percorso consigliato per l'infrastruttura di produzione: stato dichiarativo, flusso di lavoro plan/apply e riutilizzo dei moduli.

Guida completa all'installazione di Terraform

resource "openstack_compute_instance_v2" "instance_1" {
   name            = "vm-u2404-az2"
   image_name      = "Ubuntu 24.04"
   flavor_name     = "m1.micro"
   key_pair        = "foo-key"
   security_groups = ["default"]
   availability_zone = "ch-zh1-az2"

   network { name = "foo-net" }
}

5. Distribuire con Ansible

Se utilizza già Ansible, il modulo os_server distribuisce direttamente le istanze:

Guida completa all'installazione di Ansible

- os_server:
    name: "foo-u2404-az2"
    image: "Ubuntu 24.04"
    key_name: "foo-key"
    flavor: "m1.micro"
    network: "foo-net"
    security_groups: "default"
    availability_zone: "ch-zh1-az2"

Esempi OSC / Ansible / Terraform

Orchestrazione Heat

Heat (il motore di orchestrazione nativo di OpenStack) non è offerto su questa piattaforma. Utilizzi Terraform o Ansible per l'infrastructure as code.

Passo successivo

Ora ha il quadro completo: concetti, accesso, prima VM, primo bucket e automazione. Il Glossario è il Suo riferimento per i termini che non conosce, e il resto della documentazione approfondisce:

  • OpenStack : rete, load balancer, IPv6, port forwarding, DNS.
  • Cloud Services Portal : backup, Kubernetes, gestione delle quote, utilizzo.
  • IA : Everyware AI API per chat, embeddings e rerank.