Это выстрел в темноте здесь ...
Я использую сервис под названием Strato-Server-Cloud, который по сути является элементарной версией AWS или Google-Compute. Они недавно изменили свой интерфейс и / или движок. С тех пор все новые экземпляры Ubuntu 16, которые я создаю, имеют проблему с обращением их имени хоста при перезагрузке.
Вот что я обычно делаю:
/ etc / hostname
www.example.com
/ etc / hosts
127.0.0.1 www.example.com www
[...]
В Ubuntu 16 дополнительно:
hostnamectl set-hostname www
После выполнения вышеуказанных шагов:
hostname -> www
hostname -f -> www.example.com
hostnamectl
Static hostname: www
Icon name: computer-vm
Chassis: vm
Machine ID: [ID]
Boot ID: [ID]
Virtualization: microsoft
Operating System: Ubuntu 16.04.1 LTS
Kernel: Linux 4.4.0-59-generic
Architecture: x86-64
После перезагрузки перезагрузка
hostname -> XXX
hostname -f -> XXX.strato.net
hostname-ctl
[ 116]Обратите внимание на временное имя хоста
Как ни странно, файлы хостов и имен хостов не повреждены.
Я также попытался изменить /etc/init/hostname.conf на следующее
description "set system hostname"
start on startup
task
exec hostname -b -F /etc/hostname.mod; full=$(cat /etc/hostname.mod);short=(${full//./ }); hostnamectl set-hostname $short
Я также поместил имя хоста в /etc/hostname.mod, чтобы избежать перезаписи. Выполнение вышеупомянутого exec-оператора вручную исправляет все, но это не кажется эффективным во время последовательности загрузки ...
К сожалению, я довольно заблудился здесь ... Я предполагаю, что /etc/init/hostname.conf выполняется во время загрузки, но затем имя хоста переопределяется другим скриптом? Кто-нибудь когда-нибудь имел такую проблему и знает, как ее исправить? Я полагаю, я мог бы взглянуть на какую-нибудь версию Linux-шпиона для файлов, которая документирует, какие процессы касаются каких файлов и таким образом находит нарушающий сценарий ... Однако это звучит как большая работа ...
Если бы кто-то мог хотя бы указать на жизненный цикл имени хоста, то это этапы того, как оно определяется и куда можно подключиться, это уже очень помогло бы мне.
Спасибо заранее за ваше время и усилия.
Редактировать
Я думаю, это также поможет объяснить, почему это плохо: - OpenLDAP отказывается работать правильно в режиме STARTTLS, если имя хоста не настроено должным образом. Поскольку у меня никогда не было проблемы с невозможностью изменить имя хоста, я не знаю, какая другая служба могла бы также работать со сбоями. Поэтому минимальное решение этой проблемы должно вступить в силу до запуска службы, подобной OpenLDAP.
Для компьютеров, которые получают свой IP-адрес через dchp, файл клиента по умолчанию, /etc/dhcp/dhclient.conf
, включает в себя вопрос о том, каким должен быть host-name
в запросе:
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
Вы можете удалить его из запрос:
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search,
dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
Я не уверен, что: могут быть непреднамеренные побочные эффекты; Доменное имя также должно быть удалено из запроса.
Старое сообщение, я знаю, но это помогло мне решить ту же проблему. Я обновляю это для пользователей механизма поиска будущего, испытывающих ту же проблему.
Это не был отказ hostnamectl на этот раз.
, При попытке изменить имя хоста на сервере VPS и оно просто не хочет изменяться - Ваш VM может получать свое имя хоста от хост-машины / гипервизор.
В моем случае, я должен был войти в панель инструментов поставщика VPS и изменить имя хоста там.
Этот ответ может помочь тем, кто пытается создать liveCD.
Если вы создаете liveCD с загрузкой isolinux+casper, будьте осторожны. Установка casper на liveCD изменит содержимое initrd. В результате, когда система загружается, она в первую очередь будет использовать конфигурацию casper для генерации имени хоста (или чего-то еще), а не для чтения /etc/hostname.
Я обращаюсь к исходному коду casper и нахожу следующие строки.
# Allow to override USERNAME and HOST based on media information
# make it skipable by setting FLAVOUR= in casper.conf
if [ -f /cdrom/.disk/info ] && [ -z "$FLAVOUR" ]; then
FLAVOUR="$(cut -d' ' -f1 "/cdrom/.disk/info" 2>/dev/null | tr '[A-Z]' '[a-z]')" || FLAVOUR=
if [ -n "$FLAVOUR" ]; then
HOST=$FLAVOUR
USERNAME=$FLAVOUR
export HOST USERNAME
sed -i "s,USERNAME=.*,USERNAME=\"$FLAVOUR\",g; s,HOST=.*,HOST=\"$FLAVOUR\",g" /etc/casper.conf
fi
fi
Итак, вы можете создать папку «.disk» или напрямую изменить /etc/casper.conf, чтобы изменить имя хоста.
vim gen-image.sh
================
#!/bin/bash
cd IMAGE_DIR
rm -rf .disk
mkdir .disk
touch base_installable
echo "full_cd/single" >cd_type
echo "YOUR_CUSTOM_HOST_NAME" >info
echo "YOUR_CUSTOM_URL" >release_nots_url
cd ..
# GENERATE IMAGE HERE