Cet article a été rédigé par Mark Wenning, ingénieur de terrain chez Canonical.
MAAS implémente un système de balises basé sur les propriétés physiques des nœuds. La documentation MAAS sur les balises traite de cela, principalement du point de vue de l’utilisation de balises matérielles existantes avec l’option de description pour –constraints.
De nouvelles balises peuvent également être créées manuellement pour faciliter le déploiement et la gestion des clusters MAAS et Juju.
Par exemple, si vous souhaitez amorcer Juju sur un cluster MAAS et forcer le nœud de démarrage à se trouver sur une machine spécifique, vous pouvez d’abord marquer le nœud, puis amorcer en utilisant la balise comme contrainte.
$ juju bootstrap --constraints "tags=my-juju-bootstrap-node" –debug
Notez qu’une fois que vous avez défini une contrainte de balise comme celle-ci, les commandes juju suivantes tenteront d’utiliser la contrainte jusqu’à ce que vous l’annuliez :
$ juju set-constraints "tags="
Une autre utilisation des balises consiste à marquer plusieurs nœuds avec la même balise, puis à déployer uniquement sur ces nœuds :
$ juju deploy mysql –constraints "tags=my-juju-Dell-nodes" --debug
Avant de pouvoir utiliser ces commandes, vous devez vous connecter au serveur de la région MAAS :
$ maas login <profile-name> <host-url> <apikey>
Consultez https://maas.io/docs/ pour plus d’informations .
Lorsque vous avez terminé, pour vous déconnecter de l’environnement MAAS cli, exécutez
$ maas logout maas
Comme indiqué dans la documentation MAAS sur les balises, des balises peuvent être créées et attribuées à l’aide d’expressions XPath, en fonction des informations « lshw » (formatées en XML) associées au nœud. Vous pouvez accéder à ces informations au bas de chaque page Web de nœud en cliquant sur le lien « Show discovered details » sous « Raw discovery data ». Une partie des informations « lshw » pour l’un de mes nœuds est la suivante :
... <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> ...
Pour ajouter des balises plus descriptives aux nœuds du système, vous pouvez exécuter :
$ 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"'
Celles-ci balisent les nœuds conformes avec les balises Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, Système, Ordinateur de bureau, Ordinateur portable, Rack_Mount, Multisystème, 64 bits et/ou 32 bits, et sont également appliquées à tous les nœuds ajoutés ultérieurement.
Une nouvelle balise brute est créée à l’aide de la commande MAAS cli
$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
Notez que nous n’utilisons pas l’option de description ici. Ainsi:
$ maas maas tag new name="my-juju-node" comment="my new juju node"
Cette balise peut être attribuée manuellement à un ou plusieurs nœuds du système.
Pour attribuer une balise à un ou plusieurs nœuds, exécutez la commande suivante :
$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
Comment trouver l’ID système d’un nœud ? L’une d’entre elles consiste à répertorier les informations sur les nœuds et à les extraire de la structure. La commande maaS CLI
$ maas <profile> nodes list
videra un objet au format JSON (liste de structs) contenant toutes les informations sur les nœuds. Par exemple :
$ 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/" }, ]
Le premier nœud de la liste possède l’attribut « hostname » de « T110ii.maas ». Nous sommes également intéressés par l’attribut system-id de ce nœud : « system_id » : « node-2349c038-d792-11e3-8df4-0c54a5f0ce34 »
Nous pouvons maintenant attribuer la nouvelle balise à ce nœud :
$ maas maas tag update-nodes my-juju-bootstap-node add=node-2349c038-d792-11e3-8df4-0c54a5f0ce34
L’attribut « tag-names » de la Figure 1 répertorie toutes les balises attribuées à ce nœud, y compris la nouvelle.
Options :
Documentation MAAS 1.6 de l’interface de ligne de commande :
Documentation Juju (contraintes)