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.