Tento článek napsal Mark Wenning, terénní inženýr společnosti Canonical.
MAAS implementuje systém značek založený na fyzikálních vlastnostech uzlů. Dokumentace MAAS o značkách o tom pojednává, většinou z hlediska použití existujících hardwarových značek s možností popisu pro –constraints.
Nové značky je také možné vytvořit ručně, aby se usnadnilo nasazení a správa clusterů MAAS a Juju.
Pokud například chcete spustit Juju v clusteru MAAS a vynutit, aby byl uzel bootstrap na konkrétním počítači, můžete uzel nejprve označit a pak zavádět pomocí značky jako omezení.
$ juju bootstrap --constraints "tags=my-juju-bootstrap-node" –debug
Všimněte si, že jakmile nastavíte omezení tagu, jako je toto, následující příkazy juju se pokusí použít omezení, dokud jej nezrušíte:
$ juju set-constraints "tags="
Dalším použitím značek je označit několik uzlů stejnou značkou a pak je nasadit pouze do těchto uzlů:
$ juju deploy mysql –constraints "tags=my-juju-Dell-nodes" --debug
Než budete moct použít tyto příkazy, musíte se přihlásit k serveru oblasti MAAS:
$ maas login <profile-name> <host-url> <apikey>
Podrobnosti naleznete v https://maas.io/docs/ .
Až budete hotovi, odhlaste se z prostředí rozhraní příkazového řádku MAAS spuštěním příkazu
$ maas logout maas
Jak je popsáno v dokumentaci k MAAS o značkách, značky je možné vytvářet a přiřazovat pomocí výrazů XPath na základě informací "lshw" (formátovaných jako XML) přidružených k uzlu. K těmto informacím se dostanete v dolní části webové stránky každého uzlu kliknutím na odkaz "Zobrazit zjištěné podrobnosti" v části "Nezpracovaná data zjišťování". Část informací "lshw" pro jeden z mých uzlů následuje:
... <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> ...
Chcete-li přidat další popisné značky k uzlům v systému, můžete spustit:
$ 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"'
Ty označují vyhovující uzly značkami Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, System, Desktop, Laptop, Rack_Mount, Multi-system, 64bit a/nebo 32bit a také se aplikují na všechny uzly přidané později.
Nová nezpracovaná značka se vytvoří pomocí příkazu CLI MAAS.
$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
Upozorňujeme, že zde nepoužíváme možnost popisu. Takže:
$ maas maas tag new name="my-juju-node" comment="my new juju node"
Tato proměnná může být ručně přiřazena jednomu nebo více uzlům v systému.
Chcete-li přiřadit značku k uzlu nebo uzlům, spusťte příkaz:
$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
Jak zjistíte ID systému uzlu? Jedním ze způsobů je vypsat informace o uzlu a vybrat je ze struktury. Příkaz maas cli
$ maas <profile> nodes list
vypíše objekt ve formátu JSON (seznam struktur) obsahující všechny informace o uzlech. Například:
$ 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/" }, ]
První uzel v seznamu má atribut "hostname" "T110ii.maas". Zajímá nás také atribut system-id pro tento uzel: "system_id": "Node-2349C038-D792-11E3-8DF4-0C54A5F0CE34"
Nyní můžeme tomuto uzlu přiřadit nový tag:
$ maas maas tag update-nodes my-juju-bootstap-node add=node-2349c038-d792-11e3-8df4-0c54a5f0ce34
Atribut "tag-names" na obrázku 1 obsahuje seznam všech značek přiřazených k tomuto uzlu, včetně nového.
Možnosti:
Dokumentace k rozhraní příkazového řádku MAAS 1.6:
Dokumentace k nástroji Juju (omezení)