2019
September
24
2019

Überblick behalten mit Tags

Ein Server kommt selten allein: Schnell folgt ein weiterer Server für die Testumgebung, ein zusätzliches Volume nimmt archivierte Daten auf, und Floating IPs ermöglichen Hochverfügbarkeit. Wenn das Namensschema an seine Grenzen stösst, helfen die neuen Tags, um jederzeit zu wissen, was zusammengehört.

Wie Tags helfen, den Überblick zu behalten

Mit Tags wird auf den ersten Blick klar, was es mit einer bestimmten Ressource auf sich hat oder wo sie dazugehört. Solche "Etiketten" mit Key/Value-Paaren lassen sich auf die meisten Ihrer Ressourcen kleben: Servers und Server Groups, Volumes, Floating IPs und Objects Users. Damit unterscheiden Sie z.B. Prod- von Development-Umgebungen, ordnen Ressourcen dem jeweiligen Endkunden zu, oder halten eine Bemerkung fest.

Beim Abfragen von Ressourcen können Sie diese direkt anhand der Tags filtern, um nur die relevanten Objekte auszugeben. Filtern lässt sich dabei nach einem konkreten Tag-Inhalt (z.B. "tag:Env=Prod" für alle produktiven Server) oder nach dem Vorhandensein eines bestimmten Tags unabhängig von dessen Inhalt (z.B. "tag:Customer" für alle Server, die irgend einem Endkunden zugeordnet sind).

Wie Tags festgelegt und ausgewertet werden

Tags sind aktuell für unsere API implementiert. Die schon bisher bestehenden Endpunkte der unterstützten Ressourcen kennen neu ein Element "tags", das als JSON-Objekt frei definierbare Key/Value-Paare aufnimmt. Diese werden bei einem GET-Request automatisch mit ausgegeben wie im folgenden, gekürzten Beispiel:

[
  {
    "href": "https://api.cloudscale.ch/v1/servers/c10...",
    "name": "WebWorker1",
    "created_at": "2019-09-18T17:48:21.547057Z",
    "status": "running",
    "flavor": {
      "slug": "flex-32",
      "name": "Flex-32",
      "vcpu_count": 8,
      "memory_gb": 32
    },
    "server_groups": [],
    "anti_affinity_with": [],
    "tags": {
      "Env": "Prod",
      "Customer": "Cloud Corp.",
      "Lifecycle": "Installing",
      "Comment": "Don't forget the monitoring! (Remove comment when done.)"
    }
  }
]

Das Setzen und Ändern von Tags erfolgt mit einem PATCH-Request an die URL der jeweiligen Ressource:

$ curl -H "$AUTH_HEADER" -H "Content-Type: application/json" -X PATCH --data '{ "tags": { "Env": "Prod", "Customer": "Cloud Corp.", "Lifecycle": "Live" }}' https://api.cloudscale.ch/v1/servers/c10...

Sollen nur Ressourcen mit einem bestimmten Tag abgefragt werden, wird das gewünschte Kriterium einfach als URL-Parameter angehängt:

$ curl -H "$AUTH_HEADER" https://api.cloudscale.ch/v1/servers?tag:Env=Prod

Mehr Informationen und Beispiele finden sich natürlich auch in unserer API-Dokumentation. Ab der demnächst erscheinenden Ansible-Version 2.9 unterstützt zudem auch unser Ansible Cloud Module neu Tags auf den wichtigsten Ressourcen.


Mit den Tags entsprechen wir einem Wunsch, den mehrere Power-User unter unseren Kunden geäussert haben. Wir freuen uns, dass alle unsere Nutzer von diesem praktischen Feature profitieren können – damit finden Sie sich auch in grösseren Deployments jederzeit zurecht.

Hält alles in Ordnung mit Tags,
Ihr cloudscale.ch-Team

Zurück zur Übersicht