Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products

Używanie tagów z MAAS i Juju w systemie Ubuntu Server 14.04 LTS

Summary: MAAS wdraża system znaczników w oparciu o fizyczne właściwości węzłów. Dokumentacja MAAS dotycząca znaczników omawia tę kwestię

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Autorem tego artykułu jest Mark Wenning, inżynier terenowy firmy Canonical.

Tagi do dokładniejszej kontroli klastrów MAAS i Juju

MAAS wdraża system znaczników w oparciu o fizyczne właściwości węzłów. Dokumentacja MAAS dotycząca znaczników omawia tę kwestię, głównie z punktu widzenia używania istniejących znaczników sprzętowych z opcją opisu dla –constraints. 

Nowe tagi można również tworzyć ręcznie, aby ułatwić wdrażanie klastrów MAAS i Juju oraz zarządzanie nimi.    

Na przykład, jeśli chcesz uruchomić Juju w klastrze MAAS i wymusić, aby węzeł bootstrap znajdował się na określonej maszynie, możesz najpierw oznaczyć węzeł, a następnie uruchomić bootstrap używając tagu jako ograniczenia.

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

Zauważ, że po ustawieniu takiego ograniczenia znacznika, następujące polecenia juju będą próbowały użyć tego ograniczenia, dopóki go nie anulujesz:

$ juju set-constraints "tags="

Innym zastosowaniem tagów jest oznaczenie kilku węzłów tym samym tagiem, a następnie wdrożenie tylko w tych węzłach:

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

Zaloguj się do interfejsu wiersza poleceń MAAS

Aby można było korzystać z tych poleceń, należy zalogować się do serwera regionu MAAS:

$ maas login <profile-name> <host-url> <apikey>
  • <nazwa-profilu> moze byc dowolna, normalnie jest to "maas"
  • <host-url> to adres URL kontrolera regionalnego MAAS oraz interfejs API i wersja (tj.https://192.168.0.2/MAAS/api/1.0).
  • <apikey> to interfejs API MAAS lub klucz OAUTH utworzony podczas kompilacji kontrolera regionalnego MAAS.

Szczegółowe informacje można znaleźć w https://maas.io/docs/Kliknięcie tego hiperłącza powoduje wyświetlenie strony spoza witryny Dell Technologies. .

Po zakończeniu, aby wylogować się ze środowiska wiersza poleceń MAAS, uruchom polecenie

$ maas logout maas

Tworzenie tagów za pomocą opcji "description"

Jak omówiono w dokumentacji MAAS dotyczącej znaczników, znaczniki mogą być tworzone i przypisywane przy użyciu wyrażeń XPath na podstawie informacji "lshw" (sformatowanych jako XML) skojarzonych z węzłem.   Informacje te można uzyskać w dolnej części strony internetowej każdego węzła, klikając łącze "Show discovered details" w sekcji "Raw discovery data".   Część informacji "lshw" dla jednego z moich węzłów jest następująca:

...

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

Aby dodać więcej znaczników opisowych do węzłów w systemie, można wykonać:

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

Będą one oznaczać zgodne węzły znacznikami Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, System, Desktop, Laptop, Rack_Mount, Multi-system, 64-bit i/lub 32bit i będą również stosowane do wszystkich węzłów, które zostaną dodane później.

Ręczne tworzenie znaczników

Nowy znacznik raw jest tworzony za pomocą komendy CLI MAAS

$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
  • <profile> to nazwa profilu, która została skonfigurowana za pomocą polecenia login, zwykle "maas"
  • <nazwa-tagu> jest nazwą tagu
  • <Komentarz> jest opcjonalny, ale dobry pomysł.

Pamiętaj, że nie używamy tutaj opcji opisu.   Więc:

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

Ten znacznik można ręcznie przypisać do jednego lub większej liczby węzłów w systemie.

Przypisywanie znaczników

Aby przypisać tag do węzła lub węzłów, uruchom polecenie:

$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
  • <profile> to nazwa profilu skonfigurowana podczas logowania
  • <raw-tag-name> jest nazwą poprzednio utworzonego tagu
  • <System-ID> jest identyfikatorem systemowym węzła.

<Identyfikator> systemu?  Co to jest?

Jak znaleźć identyfikator systemowy węzła?   Jednym ze sposobów jest wyświetlenie informacji o węźle i wybranie ich ze struktury.  Polecenie interfejsu wiersza polecenia maaS

$ maas <profile> nodes list
  • <profile> to nazwa profilu skonfigurowana podczas logowania

zrzuci obiekt w formacie JSON (listę struktur) zawierający wszystkie informacje o węzłach.  Na przykład:

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

Dekodowanie danych wyjściowych

Pierwszy węzeł na liście ma atrybut "hostname" "T110ii.maas". Interesuje nas również atrybut system-id dla tego węzła: "system_id": "Node-2349C038-D792-11E3-8DF4-0C54A5F0CE34"

Możemy teraz przypisać nowy tag do tego węzła:

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

Atrybut "tag-names" na rysunku 1 zawiera listę wszystkich tagów przypisanych do tego węzła, w tym nowego.

Skrypty ułatwiające dodawanie tagów

Opcje:

  • --login : zaloguj się przed przypisaniem tagów do węzłów. Ta opcja wymaga również
    • –OAuth : klucz API / OAuth używany do logowania się powyżej i ewentualnie, w zależności od konfiguracji,
    • –host_url : adres URL hosta używany do logowania powyżej
    • –profil: nazwa profilu używana do logowania się powyżej
  • --remove_tags : usuń tagi, które zostały wcześniej przypisane przez ten skrypt.
  • --add_tags: dodaj tag do każdego węzła na podstawie jego nazwy

Odniesienia

Interfejs wiersza poleceń Dokumentacja MAAS 1.6:

https://maas.io/docs/maas-cliKliknięcie tego hiperłącza powoduje wyświetlenie strony spoza witryny Dell Technologies.

Dokumentacja Juju (Ograniczenia) 

https://juju.ubuntu.com/docs/charms-constraints.htmlKliknięcie tego hiperłącza powoduje wyświetlenie strony spoza witryny Dell Technologies.

https://juju.ubuntu.com/docs/reference-constraints.htmlKliknięcie tego hiperłącza powoduje wyświetlenie strony spoza witryny Dell Technologies.

Cause

-

Resolution

-

Affected Products

Ubuntu Server LTS
Article Properties
Article Number: 000129999
Article Type: Solution
Last Modified: 23 Jul 2024
Version:  4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.