Este artigo foi escrito por Mark Wenning, engenheiro de campo da Canonical.
O MAAS implementa um sistema de tags com base nas propriedades físicas dos nós. A documentação do MAAS sobre tags discute isso, principalmente do ponto de vista do uso de tags de hardware existentes com a opção de descrição para –constraints.
Novas tags também podem ser criadas manualmente para facilitar a implementação e o gerenciamento de clusters MAAS e Juju.
Por exemplo, se você quiser inicializar Juju em um cluster MAAS e forçar o nó de inicialização a estar em uma máquina específica, você pode marcar o nó primeiro e, em seguida, inicializar usando a tag como uma restrição.
$ juju bootstrap --constraints "tags=my-juju-bootstrap-node" –debug
Observe que, depois de definir uma restrição de tag como esta, os seguintes comandos juju tentarão usar a restrição até que você a cancele:
$ juju set-constraints "tags="
Outro uso de tags é marcar vários nós com a mesma tag e, em seguida, implementar somente nesses nós:
$ juju deploy mysql –constraints "tags=my-juju-Dell-nodes" --debug
Antes de usar esses comandos, você deve fazer logon no servidor de região MAAS:
$ maas login <profile-name> <host-url> <apikey>
Consulte https://maas.io/docs/ para obter detalhes.
Quando terminar, para fazer log-out do ambiente da CLI do MAAS, execute
$ maas logout maas
Conforme discutido na documentação do MAAS sobre tags, as tags podem ser criadas e atribuídas usando expressões XPath, com base nas informações "lshw" (formatadas como XML) associadas ao nó. Você pode acessar essas informações na parte inferior de cada página da Web do nó clicando no link "Show discovered details" em "Raw discovery data". Parte das informações "lshw" de um dos meus nós segue:
... <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> ...
Para adicionar mais tags descritivas aos nós do sistema, você pode executar:
$ 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"'
Eles marcarão os nós compatíveis com as etiquetas Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, sistema, desktop, laptop, Rack_Mount, vários sistemas, 64 bits e/ou 32 bits e também serão aplicados a todos os nós adicionados posteriormente.
Uma nova tag bruta é criada com o comando da CLI MAAS
$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
Observe que não estamos usando a opção de descrição aqui. Então:
$ maas maas tag new name="my-juju-node" comment="my new juju node"
Essa etiqueta pode ser atribuída manualmente a um ou mais nós no sistema.
Para atribuir uma etiqueta a um nó ou nós, execute o comando:
$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
Como encontrar o ID do sistema de um nó? Uma maneira é listar as informações do nó e retirá-las da estrutura. O comando maas cli
$ maas <profile> nodes list
despejará um objeto formatado em JSON (lista de structs) que contém todas as informações sobre os nós. Por exemplo:
$ 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/" }, ]
O primeiro nó da lista tem um atributo "hostname" de "T110ii.maas". Também estamos interessados no atributo system-id desse nó: "system_id": "NÓ-2349C038-D792-11E3-8DF4-0C54A5F0CE34"
Agora podemos atribuir a nova etiqueta a este nó:
$ maas maas tag update-nodes my-juju-bootstap-node add=node-2349c038-d792-11e3-8df4-0c54a5f0ce34
O atributo "tag-names" na Figura 1 lista todas as tags atribuídas a esse nó, inclusive a nova.
Opções:
Interface de linha de comando MAAS 1.6 Documentação:
Documentação de Juju (restrições)