Dieser Artikel wurde von Mark Wenning, Canonical Field Engineer, verfasst.
MAAS implementiert ein System von Tags, das auf den physikalischen Eigenschaften der Knoten basiert. Die MAAS-Dokumentation zu Tags diskutiert dies, hauptsächlich unter dem Gesichtspunkt der Verwendung bestehender Hardware-Tags mit der Beschreibungsoption für –constraints.
Neue Tags können auch manuell erstellt werden, um die Bereitstellung und Verwaltung von MAAS- und Juju-Clustern zu vereinfachen.
Wenn Sie beispielsweise Juju auf einem MAAS-Cluster bootstrappen und erzwingen möchten, dass sich der Bootstrap-Node auf einem bestimmten Computer befindet, können Sie zuerst den Node taggen und dann Bootstrap mithilfe des Tags als Einschränkung durchführen.
$ juju bootstrap --constraints "tags=my-juju-bootstrap-node" –debug
Beachten Sie, dass, sobald Sie eine Tag-Einschränkung wie diese festgelegt haben, die folgenden Juju-Befehle versuchen, die Einschränkung zu verwenden, bis Sie sie abbrechen:
$ juju set-constraints "tags="
Eine weitere Verwendung von Tags besteht darin, mehrere Nodes mit demselben Tag zu markieren und dann nur auf diesen Nodes bereitzustellen:
$ juju deploy mysql –constraints "tags=my-juju-Dell-nodes" --debug
Bevor Sie diese Befehle verwenden können, müssen Sie sich beim MAAS-Regionsserver anmelden:
$ maas login <profile-name> <host-url> <apikey>
Weitere Informationen finden Sie https://maas.io/docs/ .
Wenn Sie fertig sind, führen Sie Folgendes aus, um sich von der MAAS-CLI-Umgebung abzumelden.
$ maas logout maas
Wie in der MAAS-Dokumentation zu Tags erläutert, können Tags mithilfe von XPath-Ausdrücken erstellt und zugewiesen werden, basierend auf den mit dem Node verknüpften "lshw"-Informationen (formatiert als XML). Sie können unten auf jeder Node-Webseite auf diese Informationen zugreifen, indem Sie unter "Raw Discovery Data" auf den Link "Show discovered details" klicken. Ein Teil der "lshw"-Informationen für einen meiner Nodes folgt:
... <lshw:node id="t410" claimed="true" class="system" handle="DMI:0100"> <lshw:description>System</lshw:description> <lshw:product>PowerEdge T410 ()</lshw:product> <lshw:vendor>Dell Inc.</lshw:vendor> <lshw:serial>RHXT410</lshw:serial> <lshw:width units="bits">64</lshw:width> <lshw:configuration> <lshw:setting id="boot" value="normal"/> <lshw:setting id="chassis" value="server"/> <lshw:setting id="uuid" value="44454C4C-4800-1058-8054-D2C04F343130"/> </lshw:configuration> <lshw:capabilities> ...
Um weitere beschreibende Tags zu Nodes im System hinzuzufügen, können Sie Folgendes ausführen:
$ maas maas tags new name="Dell_Machine" definition='//node[@class="system"]/vendor = "Dell Inc."' $ maas maas tags new name="Intel_Machine" definition='//node[@class="system"]/vendor = "Intel Corp."' $ maas maas tags new name="Virtual_Machine" definition='//node[@class="system"]/vendor = "QEMU"' $ maas maas tags new name="Laptop" definition='//node[@class="system"]/description = "Laptop"' $ maas maas tags new name="Rack_Mount" definition='//node[@class="system"]/description = "Rack Mount Chassis"' $ maas maas tags new name="Mini_Tower" definition='//node[@class="system"]/description = "Mini Tower Computer"' $ maas maas tags new name="System" definition='//node[@class="system"]/description = "System"' $ maas maas tags new name="Desktop" definition='//node[@class="system"]/description = "Desktop Computer"' $ maas maas tags new name="Blade" definition='//node[@class="system"]/description = "Multi-system"' $ maas maas tags new name="Intel_CPU" definition='//node[@class="processor"]/vendor = "Intel Corp."' $ maas maas tags new name="AMD_CPU" definition='//node[@class="processor"]/vendor = "Advanced Micro Devices [AMD]"' $ maas maas tags new name="64bit" definition='//node[@class="system"]/width="64"' $ maas maas tags new name="32bit" definition='//node[@class="system"]/width="32"'
Diese kennzeichnen konforme Nodes mit den Tags Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, System, Desktop, Laptop, Rack_Mount, Multi-System, 64 Bit und/oder 32 Bit und werden auch auf alle später hinzugefügten Nodes angewendet.
Ein neues Raw-Tag wird mit dem MAAS-CLI-Befehl erstellt.
$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
Beachten Sie, dass wir hier nicht die Option "Beschreibung" verwenden. Also:
$ maas maas tag new name="my-juju-node" comment="my new juju node"
Dieses Tag kann manuell einem oder mehreren Nodes im System zugewiesen werden.
Um einem oder mehreren Nodes ein Tag zuzuweisen, führen Sie den folgenden Befehl aus:
$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
Wie finden Sie die System-ID eines Nodes? Eine Möglichkeit besteht darin, die Node-Informationen aufzulisten und aus der Struktur auszuwählen. Der Maas-CLI-Befehl
$ maas <profile> nodes list
gibt ein JSON-formatiertes Objekt (Liste von Strukturen) aus, das alle Informationen über die Knoten enthält. Zum Beispiel:
$ maas maas nodes list [ { "status": 4, "macaddress_set": [ { "resource_uri": "/MAAS/api/1.0/nodes/node-2349c038-d792-11e3-8df4-0c54a5f0ce34/macs/bc%3A30%3A5b%3Ae3%3A21%3A15/", "mac_address": "bc:30:5b:e3:21:15" } ], "hostname": "T110ii.maas", "zone": { "resource_uri": "/MAAS/api/1.0/zones/default/", "name": "default", "description": "" }, "routers": [], "netboot": true, "cpu_count": 8, "storage": 239825, "owner": null, "system_id": "node-2349c038-d792-11e3-8df4-0c54a5f0ce34", "architecture": "amd64/generic", "memory": 8192, "power_type": "ipmi", "tag_names": [ "use-fastpath-installer", "my-juju-boostrap-node" ], "ip_addresses": [ "192.168.0.53" ], "resource_uri": "/MAAS/api/1.0/nodes/node-2349c038-d792-11e3-8df4-0c54a5f0ce34/" }, ]
Der erste Node in der Liste hat das Attribut "hostname" von "T110ii.maas". Wir interessieren uns auch für das Attribut system-id für diesen Node: "system_id": "node-2349c038-d792-11e3-8df4-0c54a5f0ce34"
Diesem Node können wir nun das neue Tag zuweisen:
$ maas maas tag update-nodes my-juju-bootstap-node add=node-2349c038-d792-11e3-8df4-0c54a5f0ce34
Das Attribut "tag-names" in Abbildung 1 listet alle Tags auf, die diesem Node zugewiesen sind, einschließlich des neuen.
Options:
Befehlszeilenschnittstelle MAAS 1.6 Dokumentation:
Juju-Dokumentation (Beschränkungen)