Linux - начинающим. Настраиваем имя хоста при помощи hostnamectl

Имя компьютера, в полном соответствии с известной поговоркой, как и имя лодки способно влиять на многое, прежде всего на удобство работы и восприятия. А неудачное имя способно только запутывать и заставлять каждый раз тратить дополнительное время. При этом очень хорошо, если у вас будет принята некоторая политика присвоения имен хостам, и вы будете ее придерживаться. А сегодня мы рассмотрим способы управления именем хоста и дополнительной информацией о нем, которые нам предоставляет systemd в виде утилиты hostnamectl.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Можно по-разному относиться к systemd, но нельзя не признать, что он дает администратору простые и удобные инструменты, которые всегда одинаково работают вне зависимости от дистрибутива. Один из них - hostnamectl, но это не просто еще одна утилита, а удобный и информативный инструмент.

Если вы первый раз оказались в незнакомой системе, то просто запустите:

1hostnamectl

И вы, кроме имени узла, получите массу полезной информации: версия ОС, версия ядра, архитектура, разрядность, а для виртуальных машин их тип и систему виртуализации. В целом здесь есть ответы на все первоначальные вопросы, которые возникают в новой системе.

При этом вам не нужно угадывать какая именно система перед вами и мучительно вспоминать команды, позволяющие посмотреть ее версию. В любой системе использующей systemd вывод будет выглядеть одинаковым. И только уже хотя бы поэтому о hostnamectl нужно знать.

Но перейдем к основному назначению данной утилиты, а именно управление именем хоста. В Linux поддерживается три возможных имени узла:

  • Красивое (pretty) - это имя задается пользователем и может содержать пробелы и специальные символы, например "My Notebook Asus".
  • Статичное (static) - задается администратором во время установки системы, может содержать только ASCII-символы без пробелов и точек, либо несколько групп символов через точки, если имя указано в формате FQDN. Максимальная длина - 64 символа.
  • Временное (transient) - резервный вариант, получаемый при конфигурировании сети (например, node12345678), используется только в том случае, если не указано статическое имя.

У утилиты есть ряд доступных команд, чтобы ознакомиться с ними наберите:

1hostnamectl -h

В ответ на экран будет выведена короткая, но исчерпывающая справка по использованию данного инструмента.

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

1hostnamectl

На самом деле вызывает:

1hostnamectl status

Также мы можем указать, какое именно имя нас интересует:

1hostnamectl status --pretty

Или просто:

1hostnamectl --pretty

По умолчанию в системе установлено статическое имя и аналогичное ему временное.

Остальные команды позволяют получать или устанавливать определенные параметры. Если вызвать команду без указания параметра, то она покажет текущее значение, если параметр указать - то он будет установлен. Так, например, для получения имени хоста используйте:

1hostnamectl hostname

Для установки:

1hostnamectl hostname newhostname

Также допускается запись:

1hostnamectl set-hostname newhostname

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

При установке имени без использования дополнительных опций будут изменены все три имени, например, мы можем использовать такой вариант:

1hostnamectl set-hostname "Ubuntu Browser Test"

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

Как видим, с красивым именем все хорошо, только вот статическое нам категорически не нравится. Давайте исправим именно его, для этого просто укажем команде дополнительную опцию:

1hostnamectl set-hostname ubuntu-browser-test --static

А что, если мы еще захотим изменить и временное, но в этом случае система пояснит нам, что так как у нас уже задано статическое имя, то временное использоваться не будет.

Кроме имени хоста мы можем еще указать icon-name - специальное значение, согласно принятой спецификации, на основании которой многие графические утилиты будут автоматически выводить значок для системы.

Следующая необязательная опция - chassis, позволяет указать тип шасси, что влияет на отображение узла в некоторых графических приложениях или доступные способы взаимодействия с ним, допустимы следующие параметры: desktop, laptop, convertible, server, tablet, handset, watch, embedded, плюс два дополнительных типа для виртуальных машин vm и container.

Однако практической необходимости менять эти опции нет. Гораздо интереснее и полезнее использовать следующие две команды.

Так команда deployment позволяет указать среду развертывания данного узла, рекомендуемые значения: development, integration, staging, production, но вы можете указать и свое значение, обязательное условие - это должно быть одно слово, не содержащее недопустимых символов.

Например, мы указали:

1hostnamectl deployment testing

Следующая команда - location - позволяет задать размещение узла в любой произвольной форме, можете написать туда все, что хотите, включая адрес, место размещения в стойке и т.д. и т.п.

1hostnamectl location "Lan Lab IT31"

Вся указанная информация будет доступна при выполнении команды status.

Это удобно, так как позволяет быстро понять в каком контуре развернута данная машина и где именно она расположена. Мы рекомендуем использовать данные опции, так как это позволяет быстро получить дополнительную информацию и избежать дополнительных вопросов или досадных ошибок, например, перепутав тестовый сервер с рабочим.

И, наконец, еще одна интересная опция --json, которая позволяет вывести результат в формате JSON, что удобно для последующей машинной обработки. У опции есть два параметра pretty и short, в первом случае выводится человекочитаемый формат, во втором - короткий.

На этом наша статья подходит к концу, как видим, hostnamectl - это мощный и удобный инструмент, возможности которого не сводятся только к изменению имени хоста и каждый системный администратор, работающий с современным Linux должен знать и уметь пользоваться этим инструментом.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал