Использование hostname в качестве ID устройства

Кейс описывает, как настроить сервер RuDesktop так, чтобы устройствам в качестве идентификатора присваивался их сетевой hostname, а не числовой ID. Это удобно для парка машин с управляемыми уникальными именами хостов — например, доменных устройств, VDI и развёртываний из общего образа

В чём проблема

По умолчанию сервер выдаёт каждому устройству числовой id. У такого подхода есть неудобства при управлении крупным парком:

  • числовой ID не несёт смысла — по нему сложно понять, что это за машина

  • при клонировании из образа или переустановке ОС устройство может зарегистрироваться как новое и «потерять» прежний ID

  • администратору приходится сопоставлять числовые ID с именами хостов вручную

Если в инфраструктуре имена хостов и так уникальны (типичный случай — устройства, заведённые в домен), удобнее использовать сам hostname как идентификатор устройства

Задачу решают две связанные настройки сервера в блоке Настройки клиента на странице Администрирование → Настройки

Как это работает

Использовать hostname в качестве ID устройства — при подключении сервер требует, чтобы ID устройства совпадал с его hostname:

  • если у устройства ID не равен имени хоста — сервер присваивает ему hostname в качестве ID

  • если настройку выключить — устройствам, у которых ID равен имени хоста, выдаётся новый числовой ID

Выдавать новый ID устройства при смене имени его хоста — сервер отслеживает изменение hostname у уже известного устройства. При изменении имени хоста устройство регистрируется как новое и получает новый идентификатор

Настройки можно использовать как по отдельности, так и вместе:

Использовать hostname как ID

Выдавать новый ID при смене имени

Результат

Выключено

Выключено

Поведение по умолчанию: числовой ID, при смене имени хоста идентификатор сохраняется

Включено

Выключено

ID всегда равен текущему hostname. При переименовании хоста устройство получит новый ID, равный новому имени

Выключено

Включено

ID остаётся числовым, но при переименовании хоста устройство регистрируется как новое и получает новый числовой ID

Включено

Включено

ID всегда равен текущему hostname. Вторая настройка избыточна: ID и так следует за именем хоста

Примечание

Поведение в таблице описано для Windows и Linux. У Android ID всегда остаётся числовым, а у macOS есть особенность для настройки Выдавать новый ID устройства при смене имени его хоста — подробнее в разделе «Подводные камни и их решение»

Включение настройки

  1. Перейти на страницу Администрирование → Настройки

  2. Открыть блок Настройки клиента

  3. Активировать настройку Использовать hostname в качестве ID устройства

  4. При необходимости активировать настройку Выдавать новый ID устройства при смене имени его хоста

Изменения применяются при следующем подключении устройства к серверу: устройство получает требуемый ID и переподключается уже под ним

Что происходит при смене ID

Важно

Любая смена ID (включение или выключение настройки, переименование хоста) приводит к тому, что:

  • меняется сам ID — сохранённые подключения, записи в адресной книге и доступы, привязанные к старому ID, перестанут работать

  • на устройстве сбрасывается мастер-пароль (используемый для подключения по мастер-паролю)

  • на сервере остаётся старая запись устройства со старым ID, а новая создаётся под новым ID

Постоянный пароль устройства при этом не сбрасывается

Подводные камни и их решение

Проблема

Решение

Неуникальные имена хостов. Если у двух устройств совпадает hostname, они претендуют на один ID — записи перезаписывают друг друга, сессии «смешиваются»

Перед включением настройки обеспечить уникальность имён хостов во всей инфраструктуре. Для клонов из общего образа имя хоста часто наследуется — задайте уникальные имена до подключения

Дубликаты записей на сервере. После смены ID старая запись устройства не удаляется автоматически

Периодически удалять устаревшие записи на странице Устройства. Учитывать дубли при инвентаризации и отчётах

Смена ID рвёт привязки к старому ID (сохранённые подключения, адресная книга, доступы), а мастер-пароль сбрасывается

Планировать включение/выключение настройки в окно обслуживания. После смены ID сообщить операторам новый ID и при необходимости перенастроить доступы и записи адресной книги

Выключение настройки не возвращает прежние числовые ID. Устройствам, у которых ID равен имени хоста, выдаётся новый числовой ID

Не рассчитывать на восстановление старых ID. После выключения раздать операторам актуальные ID

Android не поддерживается — у Android-устройств всегда остаётся числовой ID

Для Android-парка использовать числовые ID; настройка на них не влияет

macOS и настройка «Выдавать новый ID при смене имени хоста». На macOS при изменении только hostname новый ID по этой настройке не выдаётся (в отличие от Windows и Linux)

Для парка macOS не полагаться на настройку Выдавать новый ID устройства при смене имени его хоста для отслеживания переименований. Настройка Использовать hostname в качестве ID устройства на macOS при этом работает

Проверка

  1. Открыть в веб-интерфейсе сервера страницу Устройства и убедиться, что в качестве ID устройств отображаются их имена хостов

  2. Подключиться к устройству по его hostname — сессия должна установиться именно к этой машине

  3. При необходимости удалить устаревшие записи со старыми ID

См. также

Если требуется обеспечить уникальную идентификацию именно для клонов из общего образа (VDI, шаблон ВМ, контейнер), где совпадает внутренний UUID, используйте кейс Клонирование клиентов из единого образа — это альтернативный подход на стороне клиента