Interagire con OpenStack: API, CLI e la dashboard (Horizon)

4 novembre 2014

Fabrizio Soppelsa

- RHCE, Autore di Linux&C, Autore di Linux Journal

OpenStack

In questa serie di articoli non ci occuperemo dell’installazione di OpenStack: esistono svariate alternative che rispondono a questa esigenza. Red Hat mette a disposizione RDO, Mirantis Fuel, e vari altri produttori software e hardware coinvolti nel progetto rilasciano i propri tool. Faremo invece una panoramica, occupandoci in ogni articolo di una parte di OpenStack, partendo dal presupposto che l’ambiente sia già stato installato.

Ciò premesso, quando abbiamo introdotto OpenStack nel primo articolo della serie abbiamo accennato che l’interazione con il cloud può avvenire in tre modalità:

  1. API
  2. CLI – riga di comando
  3. Dashboard web (Horizon).

Non in tutte le modalità si può fare tutto. Chiariamo subito che con la API si può fare il 100% di operazioni, con la riga di comando il 98% e con la dashboard (Horizon) circa il 40%. Questo per impedire che la GUI, invece di rendere più facili le operazioni più frequenti, le renda più complesse inserendole in un labirinto di opzioni e configurazioni che non avrebbe senso.

Le API sono esposte via web, e possono essere invocate da chiunque abbia i permessi, per svolgere qualsiasi operazione consentita sul cloud. Esistono API per i più svariati linguaggi, e ci sono progetti che astraggono le API cloud di vari progetti (OpenStack, Cloudstack, AWS ecc.) unendole in un’interfaccia comune. Senza dilungarci oltre, diciamo soltanto che i comandi da riga assolvono i loro compiti a loro volta invocando le API, e che per ogni comando esiste uno switch di troubleshooting –debug che consente di verificare quale comando API (via curl) è stato invocato esattamente.

La CLI è lo strumento più veloce e potente per gli amministratori di OpenStack. Ogni programma mette a disposizione dei comandi ampiamente documentati con i quali interagire. Nova mette a disposizione il comando nova, Cinder cinder, Glance glance, Neutron una sofisticata shell che si invoca, guardacaso, con neutron. L’help online si ottiene I file di configurazione dei programmi risiedono in /etc/, per esempio /etc/nova, /etc/cinder, /etc/glance o /etc/neutron. Analogamente, i log si trovano in /var/log/nova, /var/log/cinder, /var/log/glance o /var/log/neutron.

Per poter usare la CLI, bisogna impostare alcune variabili d’ambiente, almeno le seguenti:

export OS_TENANT_NAME='admin'
export OS_USERNAME='admin'
export OS_PASSWORD='admin'
export OS_AUTH_URL='http://192.168.0.1:5000/v2.0/'

In caso di dubbi, è possibile scaricare il file di testo di questa configurazione in Horizon, in Project -> Access and security -> API Access, cliccando su Download OpenStack RC file:

Screenshot from 2014-10-30 18:56:16

E poi eseguirlo:

# ./admin-openrc.sh

Vediamo infine la dashboard, che costituisce in OpenStack un progetto autonomo e si chiama Horizon. È un’applicazione web Django (python) che tipicamente viene messa in produzione con Apache WSGI.

In realtà non c’è molto da dire. Con Horizon si può avere un’overview dell’ambiente dal punto di vista dell’amministratore o degli utenti dei progetti (tenant), lavorare con le istanze (VM), i volumi, le immagini, gli snapshot, la rete, l’object storage (Swift), l’orchestrazione e, da Juno, anche con Sahara (big data).

Includiamo solo qualche screenshot per dare l’idea.

Screenshot from 2014-10-30 18:59:14 Screenshot from 2014-10-30 18:58:45 Screenshot from 2014-10-30 18:58:20 Screenshot from 2014-10-30 18:56:30

Nel prossimo articolo inizieremo ad addentrarci nel cuore di OpenStack e prenderemo in dettaglio Keystone. Stay tuned!