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.

Usar etiquetas com MAAS e Juju no servidor Ubuntu 14.04 LTS

Summary: 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

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

Este artigo foi escrito por Mark Wenning, engenheiro de campo da Canonical.

Tags para controle mais fino de clusters MAAS e Juju

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

Faça login na interface de linha de comando do MAAS

Antes de usar esses comandos, você deve fazer logon no servidor de região MAAS:

$ maas login <profile-name> <host-url> <apikey>
  • <profile-name> pode ser o que você quiser, normalmente isso é "maaS"
  • <host-url> é a URL do controlador regional do MAAS, mais a api e a versão (ou seja,https://192.168.0.2/MAAS/api/1.0).
  • <apikey> é a API MAAS ou chave oauth criada quando o controlador regional MAAS foi criado.

Consulte https://maas.io/docs/Esse hiperlink direcionará você para um site fora da Dell Technologies. para obter detalhes.

Quando terminar, para fazer log-out do ambiente da CLI do MAAS, execute

$ maas logout maas

Criação de tags usando a opção "descrição"

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.

Como criar tags manualmente

Uma nova tag bruta é criada com o comando da CLI MAAS

$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
  • <Profile> é o nome do perfil que foi configurado com o comando de login, geralmente "MaaS"
  • <tag-name> é o nome da tag
  • <comentário> é opcional, mas uma boa idéia.

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.

Atribuindo tags

Para atribuir uma etiqueta a um nó ou nós, execute o comando:

$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
  • <Profile> é o nome do perfil configurado durante o login
  • <raw-tag-name> é o nome da tag criada anteriormente
  • <System-ID> é o ID do sistema do nó.

<ID do sistema>?  O que é aquilo?

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
  • <Profile> é o nome do perfil configurado durante o login

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

Decodificação da saída

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.

Scripts para ajudar você a adicionar tags

Opções:

  • --login : faça login antes de atribuir as tags aos nós. Essa opção também requer
    • –oauth: a chave API / oauth usada para fazer login acima e, possivelmente, dependendo da sua configuração,
    • –host_url : URL do host usado para fazer login acima
    • –profile : Nome do perfil usado para fazer login acima
  • --remove_tags : remover as tags que foram atribuídas anteriormente por este script.
  • --add_tags: adicione uma tag a cada nó com base em seu nome

Referências

Interface de linha de comando MAAS 1.6 Documentação:

https://maas.io/docs/maas-cliEsse hiperlink direcionará você para um site fora da Dell Technologies.

Documentação de Juju (restrições) 

https://juju.ubuntu.com/docs/charms-constraints.htmlEsse hiperlink direcionará você para um site fora da Dell Technologies.

https://juju.ubuntu.com/docs/reference-constraints.htmlEsse hiperlink direcionará você para um site fora da Dell Technologies.

Cause

-

Resolution

-

Article Properties


Affected Product

Ubuntu Server LTS

Last Published Date

23 Jul 2024

Version

4

Article Type

Solution