Den här artikeln har skrivits av Mark Wenning, Canonical Field Engineer.
MAAS implementerar ett system med taggar baserat på nodernas fysiska egenskaper. MAAS-dokumentationen om taggar diskuterar detta, främst ur synvinkeln att använda befintliga hårdvarutaggar med beskrivningsalternativet för –constraints.
Nya taggar kan också skapas manuellt för att göra det enklare att distribuera och hantera MAAS- och Juju-kluster.
Om du till exempel vill starta Juju på ett MAAS-kluster och tvinga bootstrap-noden att finnas på en specifik dator kan du tagga noden först och sedan bootstrap med taggen som en begränsning.
$ juju bootstrap --constraints "tags=my-juju-bootstrap-node" –debug
Observera att när du har ställt in en taggbegränsning som den här, kommer följande juju-kommandon att försöka använda begränsningen tills du avbryter den:
$ juju set-constraints "tags="
En annan användning av taggar är att markera flera noder med samma tagg och sedan distribuera till endast dessa noder:
$ juju deploy mysql –constraints "tags=my-juju-Dell-nodes" --debug
Innan du kan använda dessa kommandon måste du logga in på MAAS-regionens server:
$ maas login <profile-name> <host-url> <apikey>
Se https://maas.io/docs/ för mer information.
När du är klar loggar du ut från MAAS CLI-miljön genom att köra
$ maas logout maas
Som beskrivs i MAAS-dokumentationen om taggar kan taggar skapas och tilldelas med hjälp av XPath-uttryck, baserat på "lshw"-informationen (formaterad som XML) som är associerad med noden. Du kan komma åt denna information längst ned på varje nodwebbsida genom att klicka på länken "Show discovered details" under "Raw discovery data". En del av "lshw"-informationen för en av mina noder följer:
... <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> ...
Om du vill lägga till mer beskrivande taggar till noder i systemet kan du köra:
$ 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"'
Dessa taggar kompatibla noder med taggarna Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, System, Desktop, Laptop, Rack_Mount, Multi-system, 64-bitars och/eller 32-bitars, och tillämpas även på alla noder som läggs till senare.
En ny råtagg skapas med MAAS cli-kommandot
$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
Observera att vi inte använder beskrivningsalternativet här. Så:
$ maas maas tag new name="my-juju-node" comment="my new juju node"
Den här taggen kan tilldelas manuellt till en eller flera noder i systemet.
Om du vill tilldela en tagg till en nod eller noder kör du kommandot:
$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
Hur hittar du system-ID för en nod? Ett sätt är att lista nodinformationen och hämta den från structen. Maas CLI-kommandot
$ maas <profile> nodes list
dumpar ut ett JSON-formaterat objekt (lista över strukturer) som innehåller all information om noderna. Till exempel:
$ 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/" }, ]
Den första noden i listan har attributet "hostname" T110ii.maas. Vi är också intresserade av attributet system-id för den här noden: "system_id": "Nod-2349C038-D792-11E3-8DF4-0C54A5F0CE34"
Nu kan vi tilldela den nya taggen till den här noden:
$ maas maas tag update-nodes my-juju-bootstap-node add=node-2349c038-d792-11e3-8df4-0c54a5f0ce34
Attributet "tag-names" i bild 1 visar alla taggar som tilldelats den här noden, inklusive den nya.
Alternativ:
Kommandoradsgränssnitt Dokumentation för MAAS 1.6:
Juju-dokumentation (begränsningar)