Cloudcomputing Kochbuch Kommandozeilen-Client erzeugen

ZIM HilfeWiki - das Wiki

Allgemeine Informationen
Anleitung
Informationen
BetriebssystemAlle
ServiceCloudcomputing
Interessant fürAngestellte, Studierende und Gäste
HilfeWiki des ZIM der Uni Paderborn

no displaytitle found: Cloudcomputing Kochbuch Kommandozeilen-Client erzeugen

OpenStack bietet als Alternative zur Steuerung per Weboberfläche, die Steuerung per API-Schnittstelle an. Mithilfe des OpenStack Kommandozeilen-Clients können Sie diese Schnittstelle nutzten.

Rezepte[Bearbeiten | Quelltext bearbeiten]

Was ist zu tun?[Bearbeiten | Quelltext bearbeiten]

  • Python, PIP und Kommandozeilen-Client installieren
  • Zugangsdaten erstellen und einrichten
  • Verbindung testen
  • Arbeiten mit dem Kommandozeilen-Client
  • Erstellung von Datenträger, Netzwerk, Instanz

Kommandozeilen Client installieren[Bearbeiten | Quelltext bearbeiten]

Zunächst müssen Sie den Kommandozeilen-Client auf ihrem Computer (oder einer virtuellen Maschine) installieren. Dieser wird als Python-Paket bereitgestellt und lässt sich mithilfe des Packetmanagers PIP installieren. Sie sollten also zunächst sicherstellen, dass Python auf ihrem System installiert ist. Eine Anleitung finden Sie im Python Wiki im Beginners Guide.

Wenn Sie Python erfolgreich installiert haben, müssen Sie noch den Packetmanager PIP installieren. Eine Anleitung und ein Installationsscript wird in der PIP Dokumentation bereitgestellt. Darüberhinaus benötigen Sie das Packet python3-lxml, eine Anleitung dazu finden Sie auf der lxml-Website.

Ist beides erfolgreich abgeschlossen, können Sie nun den OpenStack Kommandozeilen-Client installieren. Geben Sie dazu den Befehl pip install python-openstackclient==5.2.1 ein. PIP installiert nun automatisch den Client und alle nötigen Abhängigkeiten.

Überprüfen Sie, ob die Installation erfolgreich war mit dem Befehl openstack --version. Sie sollten folgende Ausgabe erhalten:
openstack 5.2.1

Zugangsdaten erzeugen[Bearbeiten | Quelltext bearbeiten]

Damit Sie sich mit Ihrem OpenStack Projekt verbinden können, müssen Sie zunächst Zugangsdaten erzeugen. Dazu melden Sie sich auf der Weboberfläche unter rdi-cloud.uni-paderborn.de an. In der Menüleiste auf der linken Seite finden Sie unter Identität den Punkt Applikations-Zugangsdaten.

Klicken Sie auf den Button Applikations-Zugangsdaten erstellen, vergeben Sie einen Namen für den Zugang und klicken auf Erstellen.

Screenshot OpenStack Zugangsdaten erstellen.png

Es öffnet sich ein Fenster, dort wird das Geheimnis (ein einmalig vergebener Token) angezeigt. Klicken Sie auf den Button openrc-Datei herunterladen. In dieser Datei befindet sich der Token, sowie einige andere Zugangsdaten die Sie zur Anmeldung über den Kommandozeilen-Client benötigen.

Screenshot OpenStack OpenRC.png

Bei der openrc-Datei handelt es sich im ein Bash-Script mit dessen Hilfe Umgebungsvariablen gesetzt werden, auf die der OpenStack Kommandozeilen-Client zugreift. Um die Variablen zu setzten geben Sie den Befehl source und den Pfad zu ihrer heruntergeladenen openrc-Datei an. Hinweis: Der Befehl source besitzt keine Ausgabe - Sie bekommen also keine Rückmeldung, ob die Ausführung erfolgreich war.

Beispiel:

source /kochbuch/openrc.sh

Verbindung testen[Bearbeiten | Quelltext bearbeiten]

Um die Verbindung zum OpenStack Projekt zu testen, lassen Sie eine Auflistung der Verfügbaren Images ausgeben.
Dies können Sie mit dem Befehl openstack image list machen.

Wenn eine Verbindung besteht, sollten Sie folgende Ausgabe erhalten:

$ openstack image list
+--------------------------------------+--------------------+--------+
| ID                                   | Name               | Status |
+--------------------------------------+--------------------+--------+
| 032df287-7ce0-4d01-abcf-ef693d653c67 | CentOS 7 1901      | active |
| f6607948-f67a-4295-8b87-7a9e5e88ce7e | CentOS 8.1.1911    | active |
| 51660f5a-ad26-4d93-b918-d75121eb65b0 | CoreOS 33.20210314 | active |
| d74e63e8-2adb-406f-9444-d88b7cf00f02 | Debian 10.9        | active |
| 4de1f9ce-8f57-4897-ab95-7f3f1fa6d2bb | Fedora 33          | active |
| f8fdc48b-55d5-4b65-b18e-c907c70be884 | Rancher-1.5.8      | active |
| c315dc8d-8a9a-499d-a03e-9988d246bb77 | Ubuntu 20.04       | active |
+--------------------------------------+--------------------+--------+

Damit ist die Einrichtung des OpenStack Kommandozeilen-Client abgeschlossen.

Nutzung, Befehle und Hilfe[Bearbeiten | Quelltext bearbeiten]

Um den OpenStack Kommandozeilen-Client zu öffnen müssen Sie nur den Befehl openstack eingeben.

Hier einige Grundlegende Befehle, um mit dem Client zu arbeiten. Eine Einführung in die Nutzung des Clients und eine Übersicht der verfügbaren Befehle bietet auch das OpenStack Wiki.

Befehl Beschreibung
help Gibt eine Übersicht der verfügbaren Befehle aus
command list Gibt eine strukturierte Übersicht der Befehle aus
configuration show Gibt die aktuelle Konfiguration des OpenStack-Clients aus
image list Gibt eine Übersicht der verfügbaren Images aus
volume list Gibt eine Übersicht der Datenträger aus
network list Gibt eine Übersicht der Netzwerke aus
server list Gibt eine Übersicht der Instanzen aus
flavor list Gibt eine Übersicht der verfügbaren Flavor aus
container list Gibt eine Übersicht aller Container aus
keypair list Gibt eine Übersicht der Schlüsselpaare aus
security group list Gibt alle verfügbaren Sicherheitsgruppen aus
quota show Gibt die verfügbaren Ressourcen des Projektes aus

Datenträger erstellen[Bearbeiten | Quelltext bearbeiten]

Wie in der Weboberfläche von OpenStack auch, müssen Sie zunächst einen Datenträger anhand eines Images erstellen, von dem die Instanz starten kann.

Der Aufbau des Kommandos sieht so aus: volume create --image [ID des Image] --size [Größe in GB] [Name]
Um nun einen 10 GB großen Datenträger anhand des Ubuntu 20.04 Images zu erstellen, kopieren Sie sich die ID des Images und legen einen neuen Datenträger an:

(openstack) image list
+--------------------------------------+--------------------+--------+
| ID                                   | Name               | Status |
+--------------------------------------+--------------------+--------+
| 032df287-7ce0-4d01-abcf-ef693d653c67 | CentOS 7 1901      | active |
| f6607948-f67a-4295-8b87-7a9e5e88ce7e | CentOS 8.1.1911    | active |
| 51660f5a-ad26-4d93-b918-d75121eb65b0 | CoreOS 33.20210314 | active |
| d74e63e8-2adb-406f-9444-d88b7cf00f02 | Debian 10.9        | active |
| 4de1f9ce-8f57-4897-ab95-7f3f1fa6d2bb | Fedora 33          | active |
| f8fdc48b-55d5-4b65-b18e-c907c70be884 | Rancher-1.5.8      | active |
| c315dc8d-8a9a-499d-a03e-9988d246bb77 | Ubuntu 20.04       | active |
+--------------------------------------+--------------------+--------+

(openstack) volume create --image c315dc8d-8a9a-499d-a03e-9988d246bb77 --size 10 ubuntu-20.04-kochbuch
+---------------------+------------------------------------------------------------------+
| Field               | Value                                                            |
+---------------------+------------------------------------------------------------------+
| attachments         | []                                                               |
| availability_zone   | AvailabilityZone1                                                |
| bootable            | false                                                            |
| consistencygroup_id | None                                                             |
| created_at          | 2021-06-09T11:36:17.000000                                       |
| description         | None                                                             |
| encrypted           | False                                                            |
| id                  | 5c13c705-8f32-49d2-b911-a5e8608ce6c9                             |
| multiattach         | False                                                            |
| name                | ubuntu-20.04-kochbuch                                            |
| properties          |                                                                  |
| replication_status  | None                                                             |
| size                | 10                                                               |
| snapshot_id         | None                                                             |
| source_volid        | None                                                             |
| status              | creating                                                         |
| type                | replicated_bronze                                                |
| updated_at          | None                                                             |
+---------------------+------------------------------------------------------------------+

(openstack) volume list
+--------------------------------------+--------------------------+-----------+------+---------------------------------------------------+
| ID                                   | Name                     | Status    | Size | Attached to                                       |
+--------------------------------------+--------------------------+-----------+------+---------------------------------------------------+
| 5c13c705-8f32-49d2-b911-a5e8608ce6c9 | ubuntu-20.04-kochbuch    | available |   10 |                                                   |
+--------------------------------------+--------------------------+-----------+------+---------------------------------------------------+

Netzwerk erstellen[Bearbeiten | Quelltext bearbeiten]

Zunächst legen Sie ein Netzwerk an und vergeben einen Namen, dann fügen Sie dem Netzwerk ein Subnetz mit einem definierten Adressbereich hinzu. Der Aufbau des Befehls sieht so aus: network create [Name]

(openstack) network create kochbuch-lan
+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| Field                     | Value                                                                                                                                       |
+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up            | UP                                                                                                                                          |
| availability_zone_hints   |                                                                                                                                             |
| availability_zones        |                                                                                                                                             |
| created_at                | 2021-06-09T12:59:00Z                                                                                                                        |
| description               |                                                                                                                                             |
| dns_domain                |                                                                                                                                             |
| id                        | 86377e53-e0a3-4e3c-81ae-16632e8b1b5f                                                                                                        |
| ipv4_address_scope        | None                                                                                                                                        |
| ipv6_address_scope        | None                                                                                                                                        |
| is_default                | False                                                                                                                                       |
| is_vlan_transparent       | None                                                                                                                                        |
| location                  | cloud='', project.domain_id=, project.domain_name=, project.id='d618928906214a2b817ca0fac89ff171', project.name=, region_name='upb1', zone= |
| mtu                       | 8942                                                                                                                                        |
| name                      | kochbuch-lan                                                                                                                                |
| port_security_enabled     | True                                                                                                                                        |
| project_id                | d618928906214a2b817ca0fac89ff171                                                                                                            |
| provider:network_type     | None                                                                                                                                        |
| provider:physical_network | None                                                                                                                                        |
| provider:segmentation_id  | None                                                                                                                                        |
| qos_policy_id             | None                                                                                                                                        |
| revision_number           | 1                                                                                                                                           |
| router:external           | Internal                                                                                                                                    |
| segments                  | None                                                                                                                                        |
| shared                    | False                                                                                                                                       |
| status                    | ACTIVE                                                                                                                                      |
| subnets                   |                                                                                                                                             |
| tags                      |                                                                                                                                             |
+---------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+

Nun erstellen Sie das Subnet und fügen es zum vorher erstellten Netzwerk hinzu:
subnet create --subnet-range [Adressbereich in CIDR-Notation] --network [Name des Netzwerks] [Name]

(openstack) subnet create --subnet-range 192.168.0.1/24 --network kochbuch-lan kochbuch-subnet
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| Field                | Value                                                                                                                                       |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| allocation_pools     | 192.168.0.2-192.168.0.254                                                                                                                   |
| cidr                 | 192.168.0.0/24                                                                                                                              |
| created_at           | 2021-06-09T13:01:40Z                                                                                                                        |
| description          |                                                                                                                                             |
| dns_nameservers      |                                                                                                                                             |
| dns_publish_fixed_ip | None                                                                                                                                        |
| enable_dhcp          | True                                                                                                                                        |
| gateway_ip           | 192.168.0.1                                                                                                                                 |
| host_routes          |                                                                                                                                             |
| id                   | 44d99baf-6dc5-4ff3-ad8e-9d70b0c6b3ed                                                                                                        |
| ip_version           | 4                                                                                                                                           |
| ipv6_address_mode    | None                                                                                                                                        |
| ipv6_ra_mode         | None                                                                                                                                        |
| location             | cloud='', project.domain_id=, project.domain_name=, project.id='d618928906214a2b817ca0fac89ff171', project.name=, region_name='upb1', zone= |
| name                 | kochbuch-subnet                                                                                                                             |
| network_id           | 86377e53-e0a3-4e3c-81ae-16632e8b1b5f                                                                                                        |
| prefix_length        | None                                                                                                                                        |
| project_id           | d618928906214a2b817ca0fac89ff171                                                                                                            |
| revision_number      | 0                                                                                                                                           |
| segment_id           | None                                                                                                                                        |
| service_types        |                                                                                                                                             |
| subnetpool_id        | None                                                                                                                                        |
| tags                 |                                                                                                                                             |
+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------+

Damit aus dem Subnetz auch in das Internet geroutet werden kann muss noch ein Router erzeugt werden: router create [Name]

(openstack) router create kochbuch-router
+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| Field                   | Value                                                                                                                                       |
+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up          | UP                                                                                                                                          |
| availability_zone_hints |                                                                                                                                             |
| availability_zones      |                                                                                                                                             |
| created_at              | 2021-06-09T14:05:54Z                                                                                                                        |
| description             |                                                                                                                                             |
| external_gateway_info   | null                                                                                                                                        |
| flavor_id               | None                                                                                                                                        |
| id                      | 18af0660-f585-4f73-a209-1a712875ced5                                                                                                        |
| location                | cloud='', project.domain_id=, project.domain_name=, project.id='d618928906214a2b817ca0fac89ff171', project.name=, region_name='upb1', zone= |
| name                    | kochbuch-router                                                                                                                             |
| project_id              | d618928906214a2b817ca0fac89ff171                                                                                                            |
| revision_number         | 1                                                                                                                                           |
| routes                  |                                                                                                                                             |
| status                  | ACTIVE                                                                                                                                      |
| tags                    |                                                                                                                                             |
+-------------------------+---------------------------------------------------------------------------------------------------------------------------------------------+

Dieser wird mit dem externen Netzwerk und dem gewünschten Subnetz verbunden

(openstack) router set --external-gateway external kochbuch-router
(openstack) router add subnet kochbuch-router kochbuch-subnet
(openstack) router show kochbuch-router
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                   | Value                                                                                                                                                                                                                                                                                   |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up          | UP                                                                                                                                                                                                                                                                                      |
| availability_zone_hints |                                                                                                                                                                                                                                                                                         |
| availability_zones      | nova                                                                                                                                                                                                                                                                                    |
| created_at              | 2021-06-09T14:05:54Z                                                                                                                                                                                                                                                                    |
| description             |                                                                                                                                                                                                                                                                                         |
| external_gateway_info   | {"network_id": "0d668bae-752e-4072-9be2-01b1af771733", "external_fixed_ips": [{"subnet_id": "4220a295-f7d6-4a0d-a30c-9c0f5b473cd5", "ip_address": "192.26.181.34"}, {"subnet_id": "1e7c011e-d94f-4e93-ac68-8e8b873cdfb8", "ip_address": "2001:638:502:fc40::34"}], "enable_snat": true} |
| flavor_id               | None                                                                                                                                                                                                                                                                                    |
| id                      | 18af0660-f585-4f73-a209-1a712875ced5                                                                                                                                                                                                                                                    |
| interfaces_info         | [{"port_id": "39b0b2ed-f08d-482d-9152-29ccd6c6f635", "ip_address": "192.168.0.1", "subnet_id": "9e444d4a-ef77-4dba-aaf1-364dcceea238"}]                                                                                                                                                 |
| location                | cloud='', project.domain_id=, project.domain_name=, project.id='d618928906214a2b817ca0fac89ff171', project.name=, region_name='upb1', zone=                                                                                                                                             |
| name                    | kochbuch-router                                                                                                                                                                                                                                                                         |
| project_id              | d618928906214a2b817ca0fac89ff171                                                                                                                                                                                                                                                        |
| revision_number         | 4                                                                                                                                                                                                                                                                                       |
| routes                  |                                                                                                                                                                                                                                                                                         |
| status                  | ACTIVE                                                                                                                                                                                                                                                                                  |
| tags                    |                                                                                                                                                                                                                                                                                         |
| updated_at              | 2021-06-09T14:12:13Z                                                                                                                                                                                                                                                                    |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Instanz erzeugen[Bearbeiten | Quelltext bearbeiten]

Schließlich können Sie die Instanz erzeugen. Dazu geben Sie folgende Punkte an:

server create --volume [Name des Datenträgers] --flavor [Name des Flavors] --security-group [Namen der Sicherheitsgruppen]  --key-name [Name des Schlüsselpaars] --network [Name des Netzwerks] [Name]
(openstack) server create --volume ubuntu-20.04-kochbuch --flavor small --security-group SSH --security-group ICMP --key-name uni_pb --network kochbuch-lan kochbuch-server
+-----------------------------+------------------------------------------------------------------+
| Field                       | Value                                                            |
+-----------------------------+------------------------------------------------------------------+
| OS-DCF:diskConfig           | MANUAL                                                           |
| OS-EXT-AZ:availability_zone |                                                                  |
| OS-EXT-STS:power_state      | NOSTATE                                                          |
| OS-EXT-STS:task_state       | scheduling                                                       |
| OS-EXT-STS:vm_state         | building                                                         |
| OS-SRV-USG:launched_at      | None                                                             |
| OS-SRV-USG:terminated_at    | None                                                             |
| accessIPv4                  |                                                                  |
| accessIPv6                  |                                                                  |
| addresses                   |                                                                  |
| config_drive                |                                                                  |
| created                     | 2021-06-09T13:13:19Z                                             |
| flavor                      | small (small)                                                    |
| hostId                      |                                                                  |
| id                          | 84aeffe4-a6a1-4fe1-8bdb-1ab01c968bf6                             |
| image                       |                                                                  |
| key_name                    | uni_pb                                                           |
| name                        | kochbuch-server                                                  |
| progress                    | 0                                                                |
| project_id                  | d618928906214a2b817ca0fac89ff171                                 |
| properties                  |                                                                  |
| security_groups             | name='7c163bd5-e663-487d-95a4-8b3a38d47de9'                      |
|                             | name='c4b8c3c3-b54a-49b5-9d19-dbfcc15ec28e'                      |
| status                      | BUILD                                                            |
| updated                     | 2021-06-09T13:13:19Z                                             |
| volumes_attached            |                                                                  |
+-----------------------------+------------------------------------------------------------------+

Floating IP zuweisen[Bearbeiten | Quelltext bearbeiten]

Über floating ip list können Sie sich die verfügbaren Floating IPs anzeigen lassen. Um eine der Adressen der Instanz zuzuordnen verwenden Sie folgendes Muster: server add floating ip [Name der Instanz] [Floating IP-Adresse]

Nun können Sie sich per SSH mit der Instanz verbinden:
ssh -i [Pfad zu ihrem Schlüssel] ubuntu@[Floating IP]


Bei Fragen oder Problemen wenden Sie sich bitte telefonisch oder per E-Mail an uns:

Tel. IT: +49 (5251) 60-5544 Tel. Medien: +49 (5251) 60-2821 E-Mail: zim@uni-paderborn.de

Das Notebook-Café ist die Benutzerberatung des ZIM - Sie finden uns in Raum I0.401

Wir sind zu folgenden Zeiten erreichbar:


Mo-Do Fr
Vor-Ort-Support 08:30 - 16:00 08:30 - 14:00
Telefonsupport 08:30 - 16:00 08:30 - 14:00


Das ZIM:Servicecenter Medien auf H1 hat aktuell zu folgenden Zeiten geöffnet:

Mo-Do Fr
08:00 - 16:00 08:00 - 14:30
Cookies helfen uns bei der Bereitstellung des ZIM HilfeWikis. Bei der Nutzung vom ZIM HilfeWiki werden die in der Datenschutzerklärung beschriebenen Cookies gespeichert.