Zum Inhalt

Installation der OpenStack CLI

Die OpenStack CLI ermöglicht programmatischen Zugriff auf viele Funktionen der NETWAYS Cloud, die auf OpenStack aufbaut.

Egal ob administrative Aufgaben, wiederkehrende Tasks oder "Aufräumarbeiten", bietet die OpenStack CLI die Möglichkeit, mit der NETWAYS Cloud aus Scripts, Pipelines oder sogar eigenen Anwendungen heraus zu interagieren.

Voraussetzungen

Für die Nutzung der OpenStack CLI wird Python in einer Version >=3.8 benötigt.

Installation

Die OpenStack CLI ist wie OpenStack selbst in Python geschrieben. Die für die CLI benötigten Pakete können deswegen mit Pythons Paketmanager pip von PyPi installiert werden:

pip install python-openstackclient \
  python-barbicanclient \
  python-cinderclient \
  python-designateclient \
  python-glanceclient \
  python-heatclient \
  python-magnumclient \
  python-neutronclient \
  python-novaclient \
  python-octaviaclient \
  gnocchiclient

Anzahl an Clients

Das OpenStack-Projekt besteht aus einer Vielzahl an Microservices, die zusammenarbeiten (Barbican, Cinder, Designate, Glance, etc.). Für die Interaktion mit jedem dieser Services existiert ein dedizierter Client, der für die Interaktion mit diesem genutzt wird.

Aus diesem Grund besteht auch die Installation der OpenStack CLI aus mehreren Paketen

Konfiguration

Im Kontext der NETWAYS Cloud kann die OpenStack CLI auf zwei Arten konfiguriert werden:

  • direkter Zugriff auf ein spezifisches Projekt mittels der in OpenStacks Webinterface Horizon downloadbaren OpenstackRC-Datei.
  • allgemeiner Zugriff auf alle möglichen Projekte mittels der NWS ID.

Im Folgenden findest Du die Abläufe für beide Varianten

Konfiguration mittels OpenStackRC.sh

Die Konfiguration der OpenStack CLI für ein spezifisches Projekt erfolgt über ein Bashscript namens openrc.sh. Dieses kann aus OpenStacks Webinterface Horizon heruntergeladen werden.

  1. Login im OpenStack-Projekt via cloud.netways.de mit dem Projektnutzer.

    Screenshot der Horizon-Anmeldemaske

    Projektnutzer

    Der Projektnutzer kann im MyNWS-Portal angelegt und aktiviert werden.

    Mehr Informationen finden sich in der Dokumentation unter Einrichtung des OpenStack Projektnutzers

  2. Nach erfolgreichem Login kanns im Reiter API Access mittels Klick auf Download OpenStack RC File die benötigte Datei heruntergeladen werden.

    Screenshot des API Access Reiters

  3. Die gedownloadete Datei ist nach dem Schema <projekt-id>-openrc.sh benannt und muss nun gesourced werden. Im Anschluss ist erneut die Eingabe des Passworts für den Projektnutzer notwendig:

    source ~/Downloads/20631-openstack-04223-openrc.sh
    Please enter your OpenStack Password for project 20631-openstack-04223 as user 20631-openstack-04223:
    

    Ist das eingegebene Passwort korrekt, erfolgt keine weitere Ausgabe durch das Skript.

  4. Nun kann die OpenStack CLI genutzt werden, bspw. um vorhandene Networks im OpenStack-Projekt aufzulisten:

    openstack network list
    +--------------------------------------+-----------------------+---------------------------------------------------------------------------+
    | ID                                   | Name                  | Subnets                                                                   |
    +--------------------------------------+-----------------------+---------------------------------------------------------------------------+
    | 210e26d7-942f-4e17-89b2-571eee87d7e4 | public-network        | 06d6f5ba-c2fd-4025-a877-000edf58bea1, 220b5e2f-e086-4c00-8ddb-            |
    |                                      |                       | fbbd539da3ce, 68adf345-73c8-42f6-ae65-bc705bf35651, cd9abbed-             |
    |                                      |                       | fe5b-40a4-b53c-1d42d2732594, d4a4d8cf-a140-46f1-95bd-d213128aa541,        |
    |                                      |                       | ec7b7b20-0bcb-4dc9-87cf-11249689bfd5                                      |
    | 62c630db-fd44-40e5-a9be-b89b8ffeb079 | ExtNetwork            | 0593b5ff-0ac2-410a-ac0e-0d74f1e8e7dc                                      |
    | ded593e8-8159-4919-a6d3-44c8751dbf3b | 20631-openstack-04223 | 17f3dce1-7ff2-4248-89f4-9331d476238c                                      |
    +--------------------------------------+-----------------------+---------------------------------------------------------------------------+
    

Sourcen der OpenStack RC Datei

Die OpenStackRC-Datei muss für jede Terminalsitzung erneut gesourced werden, um benötigte Variablen für die OpenStack CLI bereitzustellen und den Login an der OpenStack API vorzunehmen.

Konfiguration mittels NWS-ID

Die Konfiguration der OpenStack CLI für alle für einen Nutzer freigegebenen Projekte über die NWS-ID erfodert ebenfalls eine OpenStackRC-Datei. Diese kann allerdings bereits vorkonfiguriert aus dem MyNWS-Portal heruntergeladen werden:

  1. Download der vorkonfigurierten OpenStackRC-Datei aus dem OpenStack-Reites im MyNWS-Portal. Screenshot des Get Started Reites in MyNWS OpenStack

  2. Installation der kubelogin CLI für Login mit der NWS-ID. Mehr Informationen finden sich in der Dokumentation unter Installation der kubelogin CLI.

  3. Die OpenStackRC-Datei muss nun gesourced werden. Ist die kubelogin CLI installiert, öffnet sich ein Browserfenster für den Login mit der NWS-ID. Andernfalls erfolgt der Login durch Eingabe der Zugangsdaten im Terminal.

    source ~/Downloads/nws-id-openstack-rc.sh
    
  4. Nach erfolgreichem Login im Browser oder Terminal kann das gewünschte Projekt für die aktuelle und weitere Sessions ausgewählt werden.

  5. Im Anschluss ist das Arbeiten mit der OpenStack CLI möglich:

     openstack network list
     +--------------------------------------+-----------------------+---------------------------------------------------------------------------+
     | ID                                   | Name                  | Subnets                                                                   |
     +--------------------------------------+-----------------------+---------------------------------------------------------------------------+
     | 210e26d7-942f-4e17-89b2-571eee87d7e4 | public-network        | 06d6f5ba-c2fd-4025-a877-000edf58bea1, 220b5e2f-e086-4c00-8ddb-            |
     |                                      |                       | fbbd539da3ce, 68adf345-73c8-42f6-ae65-bc705bf35651, cd9abbed-             |
     |                                      |                       | fe5b-40a4-b53c-1d42d2732594, d4a4d8cf-a140-46f1-95bd-d213128aa541,        |
     |                                      |                       | ec7b7b20-0bcb-4dc9-87cf-11249689bfd5                                      |
     | 62c630db-fd44-40e5-a9be-b89b8ffeb079 | ExtNetwork            | 0593b5ff-0ac2-410a-ac0e-0d74f1e8e7dc                                      |
     | ded593e8-8159-4919-a6d3-44c8751dbf3b | 20631-openstack-04223 | 17f3dce1-7ff2-4248-89f4-9331d476238c                                      |
     +--------------------------------------+-----------------------+---------------------------------------------------------------------------+