Як встановити ім'я хоста для системи Debian Jessie?


19

Дебіан Джессі приходить systemd. Рекомендація щодо встановлення імені хоста використовує hostnamectl для systemd. Однак ця команда не працює (навіть для відображення поточного імені хоста) для зображення Debian Jessie, завантаженого на EC2 :

sudo hostnamectl
sudo: unable to resolve host ip-172-30-0-17
Failed to create bus connection: No such file or directory

Тому я спробував просунутися далі з рекомендацією Дебіана тут .

echo "myhostname" > /etc/hostname
echo "127.0.0.1 myhostname" >> /etc/hosts
/etc/init.d/hostname.sh start
/etc/init.d/networking force-reload

Однак після виходу та повторного входу ім'я хоста не змінюється. Однак це все-таки змінюється після перезавантаження, але це мені не бажано.

Цей метод використовується для роботи в Debian Wheezy.

Будь-яка допомога в отриманні цього права вдячна.


Пов’язано:
Ім'я хазяїна

Відповіді:


33

Знайшов проблему. Базова AMI на EC2 для Debian Jessie не має встановленого dbus. схоже, що для hostnamectl потрібен dbus. Отже, виправлення полягає в тому, щоб:

apt-get update && apt-get install -y dbus

І потім:

hostname=myname
echo "127.0.0.1      $hostname" >> /etc/hosts
hostnamectl set-hostname "$hostname"
echo "$hostname" > /etc/hostname # uneeded

Це спрацювало.


3
Хороший улов на залежність від dbus. FYI: Я дізнався, як налаштувати системні системи і виявив, що hostnamectl set-hostname myhostnameавтоматично оновлює вміст /etc/hostname(статичне ім'я хоста), тому немає необхідності в першій echoкоманді.
Ентоні Г - справедливість для Моніки

Також попереджаючи про існуючий RAIN, чи можуть бути також відрегульовані масиви? root @ debian: ~ # rm / etc / ssh / ssh_host_ * root @ debian: ~ # dpkg-переконфігуруйте openssh-сервер І, можливо, також регенеруйте initrd
rzr

1
@donatello Схоже, timedatectlщо така ж залежність від dbus теж є ... дякую, що поділилися своїм рішенням!
Гергелі Лукачсі

2

Щоб змінити hostanme вашого EC2-хоста, необхідно виконати наведені нижче дії.

  1. Вхід як корінь:$: sudo su -
  2. Встановити dbus:$: apt-get update && apt-get install -y dbus
  3. Налаштування імені хоста: hostnamectl set-hostname <HOSTNAME>

Не забудьте змінити <HOSTNAME>ім'я хоста, яке ви хочете встановити.


0

Нам насправді не потрібно встановлювати жодний пакет, нам просто потрібно відредагувати файл відповідно до списку нижче.

root@ServerOne:~# ls -l /etc/cloud/templates/
total 32
-rw-r--r-- 1 root root 1487 Nov 18  2015 chef_client.rb.tmpl
-rw-r--r-- 1 root root  941 May  3 23:37 hosts.debian.tmpl
-rw-r--r-- 1 root root  914 Nov 18  2015 hosts.freebsd.tmpl
-rw-r--r-- 1 root root  912 Nov 18  2015 hosts.redhat.tmpl
-rw-r--r-- 1 root root  866 Nov 18  2015 hosts.suse.tmpl
-rw-r--r-- 1 root root  812 Nov 18  2015 resolv.conf.tmpl
-rw-r--r-- 1 root root 1506 Nov 18  2015 sources.list.debian.tmpl
-rw-r--r-- 1 root root 2841 Nov 18  2015 sources.list.ubuntu.tmpl
root@ServerOne:~#

Відредагуйте рядок, як показано нижче (Коментований - це початковий рядок), замініть {{fqdn}} та {{ім'я хоста}}, як показано нижче.

#127.0.1.1 {{fqdn}} {{hostname}}
127.0.1.1 ServerOne.opsplus.io ServerOne

Крім того, встановіть параметр "manage_etc_hosts:" на значення false, як показано нижче, і ви можете змінювати / etc / hosts файл, оскільки він перестане змінювати файл хостів.

root@ServerOne:~# cat /etc/cloud/cloud.cfg.d/01_debian_cloud.cfg
apt_preserve_sources_list: true
manage_etc_hosts: true
root@ServerOne:~#
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.