Казалось бы, что может быть проще чем задать машине 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" начинают работать, как полагается.
__________________________________
Если статья была полезна, не забудьте поставить лайк и подписаться на мой канал!