Skip to content

Latest commit

 

History

History
160 lines (122 loc) · 11 KB

File metadata and controls

160 lines (122 loc) · 11 KB
title excerpt updated
Image zwischen Public Cloud Projekten teilen
Erfahren Sie hier, wie Sie ein Image mit OpenStack zwischen Public Cloud Projekten teilen können
2025-04-01

Ziel

Es kann vorkommen, dass Sie ein Image eines Instanz Backups oder ein Image eines Volume Backups für mehrere Public Cloud Projekte freigeben müssen.

Mit OpenStack können Sie ein Image für mehrere Projekte freigeben, auch wenn diese nicht zum selben Account gehören.

Diese Funktion bietet viele Möglichkeiten, birgt aber auch Risiken. Es ist also wichtig, die Prinzipien zu verstehen.

Wenn Sie z.B. ein Image aus Projekt A für Projekt B freigeben möchten (unter demselben oder einem anderen Account), gelten die folgenden Regeln:

  • Ein Image kamm nur innerhalb einer Region freigegeben werden. Ein in Projekt A in der Region GRA11 erstelltes Image ist beispielsweise nur für Projekt B in derselben Region (GRA11) verfügbar.
  • Das Image bleibt physisch an Projekt A angehängt. Das Projekt B verfügt nur über eine Zugriffsberechtigung (access authorization) für dieses Image.
  • Wenn Projekt A den Zugriff auf das Image unterdrückt (Löschen der ACL, Löschen des Images, Löschen des Projekts aufgrund ausstehender Zahlungen, etc.), funktionieren Instanzen, die von diesem Image aus in Projekt B ausgeführt werden, möglicherweise wegen Problemen bei Migration oder Rebuild nicht mehr.

Daher ist es wichtig, diese Punkte in Betracht zu ziehen, bevor Sie diese Konfigurationen anwenden.

Weitere Informationen finden Sie in der offiziellen OpenStack Dokumentation{.external}.

Diese Anleitung erklärt, wie Sie ein Image für ein anderes Projekt freigeben und dabei die Image-Konfiguration und den Image-Status beibehalten.

Voraussetzungen

[!primary]

Diese Anleitung bezieht sich auf die Verwendung des OpenStack Client{.external}.

In der praktischen Anwendung

Image freigeben

Führen Sie zunächst den folgenden Befehl aus, um die vorhandenen Images aufzulisten:

$ openstack image list --private
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | pfsense |

Warning

Um es teilen zu können, muss ein Image zunächst auf geteilte Sichtbarkeit (shared visibility) eingestellt werden.

$ openstack image set --shared <Image_UUID>

Sie können den folgenden Befehl ausführen, um die Images aufzulisten, die für ein anderes Projekt freigegeben werden können:

$ openstack image list --shared
9a0fbdc5-****-****-****-8d404a1313ba 	pfsense

Hinzufügen eines Projekts zu einem Image

Im nächsten Schritt fügen Sie die UUID eines anderen Projekts als Member des Image hinzu. In unserem Beispiel unten fügen wir die UUID von Projekt B hinzu.

$ openstack image add project 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba <UUID_Project_B>
+------------+--------------------------------------+
| Field      | Value                                |
+------------+--------------------------------------+
| created_at | 2020-01-27T13:26:52Z                 |
| image_id   | 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba |
| member_id  | <UUID_Project_B>                      |
| schema     | /v2/schemas/member                   |
| status     | pending                              |
| updated_at | 2020-01-30T15:18:00Z                 |
+------------+--------------------------------------+

Überprüfen Sie danach die Anfrage für Projekt B:

$ openstack image member list <Image_UUID>
+--------------------------------------+----------------------------------+----------+
| Image ID | Member ID | Status |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <UUID_Project_B> | pending |
+--------------------------------------+----------------------------------+----------+

Wenn sich die Freigabeanforderung im Status pending befindet, müssen Sie sie akzeptieren:

$ openstack image set --accept 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+--------------------------------------+----------------------------------+----------+
| Image ID                             | Member ID                        | Status   |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | eff99684d8294dbe8c2d4dd7407073f1 | accepted |
+--------------------------------------+----------------------------------+----------+

Nachdem Sie die Freigabeanfrage akzeptiert haben, überprüfen Sie, ob Sie das Image sehen und darauf zugreifen können:

$ openstack image show 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field            | Value                                                                                                                                                                                  |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| checksum         | 1b19c9e5bdd36b9010de0164dd8b245e                                                                                                                                                       |
| container_format | bare                                                                                                                                                                                   |
| created_at       | 2018-05-08T15:38:50Z                                                                                                                                                                   |
| disk_format      | raw                                                                                                                                                                                    |
| file             | /v2/images/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba/file                                                                                                                                   |
| id               | 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba                                                                                                                                                   |
| min_disk         | 0                                                                                                                                                                                      |
| min_ram          | 0                                                                                                                                                                                      |
| name             | pfsense                                                                                                                                                                                |
| owner            | 35c9ee22e5c84c1097a5652b0abcbab3                                                                                                                                                       |
| properties       | direct_url='swift+config://ref1/glance/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba', locations='[{'url': 'swift+config://ref1/glance/9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba', 'metadata': {}}]' |
| protected        | False                                                                                                                                                                                  |
| schema           | /v2/schemas/image                                                                                                                                                                      |
| size             | 10737418240                                                                                                                                                                            |
| status           | active                                                                                                                                                                                 |
| tags             |                                                                                                                                                                                        |
| updated_at       | 2018-05-08T15:53:57Z                                                                                                                                                                   |
| virtual_size     | None                                                                                                                                                                                   |
| visibility       | private                                                                                                                                                                                |
+------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Überprüfen der Member des Image

Um alle Projekte anzuzeigen, die über das Quell-Projekt (in diesem Fall Projekt A) Zugriff auf das Image haben, können Sie diesen Befehl ausführen:

$ openstack image member list 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba
+--------------------------------------+----------------------------------+----------+
| Image ID                             | Member ID                        | Status   |
+--------------------------------------+----------------------------------+----------+
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <project C>                      | pending  |
| 9a0fbdc5-1f4a-4a1c-ad46-8d404a1313ba | <project B>                      | accepted |
+--------------------------------------+----------------------------------+----------+

Entfernen eines Members aus einem Image oder Aufheben der Freigabe eines Images

Im Quell-Projekt (Projekt A) können Sie ein Member der Freigabe löschen:

$ openstack image remove project <image> <UUID_Project_To_Delete>

Weiterführende Informationen

Backup einer Instanz von einer Region in eine andere übertragen

Treten Sie unserer User Community bei.