Недавно, я создал капельку CoreOS на DigitalOcean. Все работает хорошо, за исключением того, что я не могу изменить имя хоста своего VPS. Когда я изменяю имя хоста на то, что оно должно использовать sudo hostnamectl set-hostname myhostname.org
(зарегистрированный способ сделать так), это действительно изменяет имя хоста в масштабе всей системы (например. /etc/hostname
отражает новое имя хоста). Однако, когда я перезагружаю VPS, имя хоста вернулось, к какому это раньше было.
Это не могло бы быть совпадение, но имя хоста всегда возвращается к настоящему имени капельки. Я уже изменил то имя приблизительно одну неделю назад на корректное имя хоста. Я прочитал истории о DHCP, влияющем на имя хоста на перезагрузке, но я не могу найти решение избежать этого на CoreOS.
Как изменить имя хоста CoreOS таким способом, которым это останется тем же после перезагрузки?
Заранее спасибо!
В DigitalOcean (и некоторых других облачных провайдерах; Openstack, например) они предоставляют метаданные при каждой загрузке машины (либо через облачную конфигурацию, либо через параметры, которые вы предоставили в DigitalOcean. веб интерфейс). Когда вы присвоили имя капле / виртуальной машине, вы указали службе метаданных, что хотите, чтобы имя хоста называлось этим значением. cloud-config выполняет запрос службы метаданных DigitalOcean. На самом деле это шаблон проектирования, и работать вне его мне бы очень хотелось попытаться избежать соглашения об использовании в Rails. Вы можете это сделать, но вы только усложняете себе жизнь.
Внутри веб-интерфейса DigitalOcean вы можете переименовать каплю. Выберите «Капля» -> «Настройки» -> «Переименовать»
Что касается того, почему вариант в предыдущем ответе не существует, CoreOS не поставляет Python в облаке. init пришлось переписать на скомпилированном языке (следовательно, он был написан на Go . Чтобы просмотреть метаданные в DigitalOcean, войдите в хост и выполните команду:
$ curl http://169.254.169.254/metadata/v1/user-data