Найти тему
HippoLab - блог про Linux

Настраиваем hostname правильно

Казалось бы, что может быть проще чем задать машине hostname. Действительно, проще некуда:

hostnamectl set-hostname my-server

Данная команда не только применяет новое имя для вашей машины, но также записывает его в /etc/hostname для того, чтобы не потерять его после перезагрузки.

Проверить результат можно командой

hostname -s

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

hostname -d

В 99% случаев эта команда не выдаст ничего. И это может вызывать трудно диагностируемые проблемы. Например Ansible в этом случае не заполняет переменную "ansible_domain", оставляя ее пустой и т.д.

ОК, если с hostname все понятно, оно записывается в /etc/hostname, то что нам делать с domainname, куда оно прописывается? Ответ - никуда. В линуксе доменное имя определяется по косвенным признакам. Для того, чтобы данная команда отработала, вам надо в /etc/hosts прописать для адреса 127.0.0.2 и ::1 (loopback адрес ipv6 стека) сначала полное (fqdn) имя машины, а затем короткое. Например

127.0.0.1 my-server.example.com my-server
::1 my-server.example.com my-server

После чего команда "hostname -d" и ее аналог "dnsdomainname" начинают работать, как полагается.

__________________________________

Если статья была полезна, не забудьте поставить лайк и подписаться на мой канал!