Dit artikel is geschreven door Mark Wenning, Canonical Field Engineer.
MAAS implementeert een systeem van tags op basis van de fysieke eigenschappen van de nodes. De MAAS-documentatie over tags bespreekt dit, vooral vanuit het oogpunt van het gebruik van bestaande hardwaretags met de beschrijvingsoptie voor –constraints.
Nieuwe tags kunnen ook handmatig worden gemaakt om het gemakkelijker te maken om MAAS- en Juju-clusters te implementeren en te beheren.
Als u bijvoorbeeld Juju wilt opstarten op een MAAS-cluster en het bootstrap-knooppunt wilt forceren om op een specifieke machine te staan, kunt u eerst het knooppunt taggen en vervolgens opstarten met de tag als beperking.
$ juju bootstrap --constraints "tags=my-juju-bootstrap-node" –debug
Houd er rekening mee dat als je eenmaal een tagbeperking op deze manier hebt ingesteld, je met de volgende juju-commando's wordt geprobeerd de beperking te gebruiken totdat je deze annuleert:
$ juju set-constraints "tags="
Een ander gebruik van tags is om meerdere knooppunten met dezelfde tag te markeren en vervolgens alleen op die knooppunten te implementeren:
$ juju deploy mysql –constraints "tags=my-juju-Dell-nodes" --debug
Voordat je gebruik kunt maken van deze commando's, moet je inloggen op de MAAS regioserver:
$ maas login <profile-name> <host-url> <apikey>
Raadpleeg https://maas.io/docs/ voor meer informatie.
Als u klaar bent, voert u deze opdracht uit om uit te loggen bij de MAAS cli-omgeving
$ maas logout maas
Zoals besproken in de MAAS-documentatie over tags, kunnen tags worden gemaakt en toegewezen met behulp van XPath-expressies, op basis van de "lshw"-informatie (geformatteerd als XML) die aan het knooppunt is gekoppeld. U kunt deze informatie onderaan elke knooppuntwebpagina openen door te klikken op de koppeling Show discovered details onder "Raw discovery data". Een deel van de "lshw"-informatie voor een van mijn knooppunten volgt:
... <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> ...
Als u meer beschrijvende tags wilt toevoegen aan knooppunten in het systeem, kunt u het volgende uitvoeren:
$ 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"'
Hiermee worden compatibele knooppunten getagd met de tags Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, Systeem, Desktop, Laptop, Rack_Mount, Multi-system, 64-bits en/of 32-bits, en ze worden ook toegepast op knooppunten die later worden toegevoegd.
Er wordt een nieuwe onbewerkte tag gemaakt met het MAAS cli-commando
$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
Houd er rekening mee dat we hier geen gebruik maken van de beschrijvingsoptie. Dus:
$ maas maas tag new name="my-juju-node" comment="my new juju node"
Deze tag kan handmatig worden toegewezen aan een of meer knooppunten in het systeem.
Als u een tag wilt toewijzen aan een knooppunt of knooppunten, voert u de volgende opdracht uit:
$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
Hoe vind je de systeem-id van een knooppunt? Een manier is om de knooppuntinformatie op te sommen en uit de struct te halen. Het maas cli commando
$ maas <profile> nodes list
zal een JSON-geformatteerd object (lijst met structs) dumpen dat alle informatie over de knooppunten bevat. Bijvoorbeeld:
$ 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/" }, ]
Het eerste knooppunt in de lijst heeft een "hostname" attribuut van "T110ii.maas". We zijn ook geïnteresseerd in het kenmerk system-id voor dit knooppunt: "system_id": "node-2349c038-d792-11e3-8df4-0c54a5f0ce34"
We kunnen nu de nieuwe tag toewijzen aan dit knooppunt:
$ maas maas tag update-nodes my-juju-bootstap-node add=node-2349c038-d792-11e3-8df4-0c54a5f0ce34
Het kenmerk "tag-names" in afbeelding 1 geeft een overzicht van alle tags die aan dit knooppunt zijn toegewezen, inclusief het nieuwe.
Opties:
Command Line Interface MAAS 1.6 documentatie:
Juju-documentatie (beperkingen)