Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

Utilizzo dei tag con MAAS e Juju in Ubuntu Server 14.04 LTS

Summary: MAAS implementa un sistema di tag basato sulle proprietà fisiche dei nodi. La documentazione MAAS sui tag discute questo aspetto

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Questo articolo è stato scritto da Mark Wenning, Field Engineer di Canonical.

Tag per un controllo più preciso dei cluster MAAS e Juju

MAAS implementa un sistema di tag basato sulle proprietà fisiche dei nodi. La documentazione MAAS sui tag discute questo aspetto, principalmente dal punto di vista dell'utilizzo dei tag hardware esistenti con l'opzione di descrizione per –constraints. 

I nuovi tag possono anche essere creati manualmente per semplificare l'implementazione e la gestione dei cluster MAAS e Juju.    

Ad esempio, se si desidera eseguire il bootstrap di Juju su un cluster MAAS e forzare il nodo di bootstrap su un computer specifico, è possibile contrassegnare prima il nodo, quindi eseguire il bootstrap utilizzando il tag come vincolo.

$ juju bootstrap --constraints "tags=my-juju-bootstrap-node" –debug

Si noti che una volta impostato un vincolo di tag come questo, i seguenti comandi juju tenteranno di utilizzare il vincolo fino a quando non lo si annulla:

$ juju set-constraints "tags="

Un altro utilizzo dei tag consiste nel contrassegnare più nodi con lo stesso tag e quindi implementare solo in tali nodi:

$ juju deploy mysql –constraints "tags=my-juju-Dell-nodes" --debug

Accedere all'interfaccia della riga di comando di MAAS

Prima di poter utilizzare questi comandi, è necessario accedere al server dell'area MAAS:

$ maas login <profile-name> <host-url> <apikey>
  • <profile-name> può essere qualsiasi cosa tu voglia, normalmente questo è "maas"
  • <host-url> è l'URL del controller regionale MAAS, oltre all'API e alla versione (ad esempio,https://192.168.0.2/MAAS/api/1.0).
  • <apikey> è l'API MAAS o la chiave OAuth creata durante la creazione del controller regionale MAAS.

Fare riferimento a https://maas.io/docs/Questo link ipertestuale indirizza a un sito web esterno a Dell Technologies. per i dettagli.

Al termine, per disconnettersi dall'ambiente CLI MAAS, eseguire

$ maas logout maas

Creazione di tag utilizzando l'opzione "descrizione"

Come illustrato nella documentazione MAAS sui tag, i tag possono essere creati e assegnati utilizzando le espressioni XPath, in base alle informazioni "lshw" (formattate come XML) associate al nodo.   È possibile accedere a queste informazioni nella parte inferiore della pagina web di ciascun nodo cliccando sul link "Show discovered details" in "Raw discovery data".   Parte delle informazioni "lshw" per uno dei nodi è la seguente:

...

<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>
...

Per aggiungere tag più descrittivi ai nodi nel sistema, è possibile eseguire:

$ 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"'

Questi contrassegneranno i nodi conformi con i tag Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, Sistema, Desktop, Notebook, Rack_Mount, Multisistema, 64 bit e/o 32 bit e verranno applicati anche a tutti i nodi aggiunti in un secondo momento.

Creazione manuale di tag

Viene creato un nuovo tag raw con il comando CLI MAAS

$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
  • <Profile> è il nome del profilo configurato con il comando di accesso, in genere "maaS"
  • <tag-name> è il nome del tag
  • <Il commento> è facoltativo ma è una buona idea.

Si noti che non stiamo utilizzando l'opzione di descrizione qui.   Così:

$ maas maas tag new name="my-juju-node" comment="my new juju node"

Questo tag può essere assegnato manualmente a uno o più nodi del sistema.

Assegnazione di tag

Per assegnare un tag a uno o più nodi, eseguire il comando:

$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
  • <Profile> è il nome del profilo impostato durante l'accesso
  • <raw-tag-name> è il nome del tag creato in precedenza
  • <System-ID> è l'ID sistema del nodo.

<ID> sistema?  Cos'è?

Come si trova l'ID di sistema di un nodo?   Un modo consiste nell'elencare le informazioni sul nodo e selezionarle dalla struct.  Comando maaS CLI

$ maas <profile> nodes list
  • <Profile> è il nome del profilo impostato durante l'accesso

verrà eseguito il dump di un oggetto in formato JSON (elenco di struct) contenente tutte le informazioni sui nodi.  Ad esempio:

$ 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/"
},
]

Decodifica dell'output

Il primo nodo nell'elenco ha un attributo "hostname" "T110ii.maas". Ci interessa anche l'attributo system-id per questo nodo: "system_id": "nodo-2349c038-d792-11e3-8df4-0c54a5f0ce34"

Ora possiamo assegnare il nuovo tag a questo nodo:

$ maas maas tag update-nodes my-juju-bootstap-node add=node-2349c038-d792-11e3-8df4-0c54a5f0ce34

L'attributo "tag-names" nella Figura 1 elenca tutti i tag assegnati a questo nodo, incluso quello nuovo.

Script per aiutarti ad aggiungere tag

Opzioni:

  • --login : effettua il login prima di assegnare i tag ai nodi. Questa opzione richiede inoltre
    • –OAuth : la chiave API/OAuth utilizzata per accedere sopra ed eventualmente, a seconda della configurazione,
    • –host_url : URL dell'host utilizzato per accedere sopra
    • –profilo : nome del profilo utilizzato per accedere sopra
  • --remove_tags : rimuove i tag che sono stati assegnati in precedenza da questo script.
  • --add_tags: aggiunge un tag ad ogni nodo in base al suo nome

Riferimenti

Interfaccia della riga di comando Documentazione di MAAS 1.6:

https://maas.io/docs/maas-cliQuesto link ipertestuale indirizza a un sito web esterno a Dell Technologies.

Documentazione Juju (vincoli) 

https://juju.ubuntu.com/docs/charms-constraints.htmlQuesto link ipertestuale indirizza a un sito web esterno a Dell Technologies.

https://juju.ubuntu.com/docs/reference-constraints.htmlQuesto link ipertestuale indirizza a un sito web esterno a Dell Technologies.

Cause

-

Resolution

-

Article Properties


Affected Product

Ubuntu Server LTS

Last Published Date

23 Jul 2024

Version

4

Article Type

Solution