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.

Использование меток с MAAS и Juju в Ubuntu Server 14.04 LTS

Summary: В MAAS реализована система тегов, основанная на физических свойствах узлов. Это обсуждается в документации MAAS по тегам

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

Эта статья была написана Марком Веннингом (Mark Wenning), каноническим инженером по эксплуатации на местах.

Теги для более точного управления кластерами MAAS и Juju

В MAAS реализована система тегов, основанная на физических свойствах узлов. В документации MAAS по тегам это обсуждается, в основном с точки зрения использования существующих аппаратных тегов с опцией описания для –constraints. 

Новые метки также можно создавать вручную, чтобы упростить развертывание кластеров MAAS и Juju и управление ими.    

Например, если вы хотите выполнить начальную загрузку Juju в кластере MAAS и принудительно разместить узел начальной загрузки на определенном компьютере, вы можете сначала пометить узел, а затем выполнить начальную загрузку, используя тег в качестве ограничения.

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

Обратите внимание, что после того, как вы установили подобное ограничение тега, следующие команды juju будут пытаться использовать ограничение до тех пор, пока вы его не отмените:

$ juju set-constraints "tags="

Теги также используются для маркировки нескольких узлов одним и тем же тегом, а затем развертывания только на этих узлах:

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

Войдите в интерфейс командной строки MAAS

Перед использованием этих команд необходимо выполнить вход на сервер региона MAAS:

$ maas login <profile-name> <host-url> <apikey>
  • <profile-name> может быть любым, обычно это "maaS"
  • <host-url> — это URL-адрес регионального контроллера MAAS, а также api и версия (т.е.https://192.168.0.2/MAAS/api/1.0).
  • <apikey> - это MAAS api или ключ oauth, созданный при построении регионального контроллера MAAS.

Подробные сведения см. в https://maas.io/docs/Эта гиперссылка позволяет перейти на сайт за пределами Dell Technologies. .

После этого для выхода из среды интерфейса командной строки MAAS выполните команду

$ maas logout maas

Создание тегов с помощью опции "description"

Как описано в документации MAAS по тегам, теги могут быть созданы и назначены с помощью выражений XPath на основе информации «lshw» (в формате XML), связанной с узлом.   Вы можете получить доступ к этой информации в нижней части веб-страницы каждого узла, нажав на ссылку «Show discovered details» в разделе «Raw discovery data».   Часть информации «lshw» для одного из моих узлов выглядит следующим образом:

...

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

Чтобы добавить более информативные теги к узлам в системе, можно выполнить:

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

Они будут помечать соответствующие узлы тегами Dell_Machine, Intel_Machine, Virtual_Machine, Rack_Mount, System, Desktop, Laptop, Rack_Mount, Multi-system, 64-bit и/или 32bit, а также применяются ко всем узлам, которые будут добавлены позже.

Создание тегов вручную

Новый необработанный тег создается с помощью команды MAAS cli

$ maas <profile> tag new name="<tag-name>" [comment="<comment>"]
  • <Profile> — это имя профиля, которое было задано с помощью команды login, обычно «maaS»
  • <tag-name> - это имя тега
  • <Комментарий> необязателен, но это хорошая идея.

Обратите внимание, что здесь мы не используем опцию description.   Так:

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

Этот код можно вручную присвоить одному или нескольким узлам в системе.

Назначение тегов

Чтобы назначить тег узлу или узлам, выполните команду:

$ maas <profile> tag update-nodes <raw-tag-name> add="<system-id>"
  • <profile> — имя профиля, заданное при входе в систему
  • <raw-tag-name> — это имя ранее созданного тега
  • <system-id> — системный идентификатор узла.

<Идентификатор> системы?  Что это?

Как узнать системный идентификатор узла?   Один из способов — вывести список информации об узле и выбрать ее из структуры.  Команда maas cli

$ maas <profile> nodes list
  • <profile> — имя профиля, заданное при входе в систему

выгрузит объект в формате JSON (список структур), содержащий всю информацию об узлах.  Пример.

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

Расшифровка выходных данных

Первый узел в списке имеет атрибут «hostname» «T110ii.maas». Нас также интересует атрибут system-id для этого узла: "system_id": «узел-2349c038-d792-11e3-8df4-0c54a5f0ce34»

Теперь мы можем присвоить новый тег этому узлу:

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

Атрибут "tag-names" на рисунке 1 перечисляет все теги, назначенные этому узлу, включая новый.

Скрипты, помогающие добавлять теги

Параметры:

  • --login : вход в систему перед назначением тегов узлам. Для этого варианта также требуется
    • –oauth : ключ api / oauth, используемый для входа в систему выше и, возможно, в зависимости от ваших настроек,
    • –host_url : URL-адрес хоста, используемый для входа в систему выше
    • –profile : имя профиля, используемое для входа в систему выше
  • --remove_tags : удалить теги, которые были назначены ранее этим скриптом.
  • --add_tags: добавить тег к каждому узлу на основе его имени

Справочные материалы

Документация по интерфейсу командной строки MAAS 1.6:

https://maas.io/docs/maas-cliЭта гиперссылка позволяет перейти на сайт за пределами Dell Technologies.

Документация Juju (ограничения) 

https://juju.ubuntu.com/docs/charms-constraints.htmlЭта гиперссылка позволяет перейти на сайт за пределами Dell Technologies.

https://juju.ubuntu.com/docs/reference-constraints.htmlЭта гиперссылка позволяет перейти на сайт за пределами Dell Technologies.

Cause

-

Resolution

-

Article Properties


Affected Product

Ubuntu Server LTS

Last Published Date

23 Jul 2024

Version

4

Article Type

Solution