Jak ustawić nazwę hosta dla systemu Debian Jessie?

19

Debian Jessie pochodzi systemd. Zaleceniem ustawienia nazwy hosta jest użycie nazwy hosta dla systemd. Jednak to polecenie nie działa (nawet w celu wyświetlenia bieżącej nazwy hosta) na obrazie Debian Jessie uruchomionym na EC2 :

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

Próbowałem więc zastosować się do zaleceń Debiana tutaj .

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

Jednak po wylogowaniu i ponownym zalogowaniu nazwa hosta się nie zmienia. Jednak zmienia się po ponownym uruchomieniu, ale nie jest to dla mnie pożądane.

Ta metoda była używana w Debian Wheezy.

Każda pomoc w uzyskaniu tego prawa jest mile widziana.

donatello
źródło

Odpowiedzi:

33

Znalazłem problem. Podstawowy AMI na EC2 dla Debian Jessie, nie ma zainstalowanego dbus. wydaje się, że hostnamectl potrzebuje dbus. Więc poprawka polega na:

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

I wtedy:

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

To zadziałało.

donatello
źródło
3
Dobry chwyt zależności od dbus. Do Twojej wiadomości: Nauczyłem się konfigurować systemy systemowe i odkryłem, że hostnamectl set-hostname myhostnameautomatycznie aktualizuje zawartość /etc/hostname(statyczna nazwa hosta), więc nie ma potrzeby wykonywania pierwszego echopolecenia.
Anthony G - sprawiedliwość dla Moniki
Ostrzegając również o istniejącym DESZCZU, czy macierz może być dostosowywana? root @ debian: ~ # rm / etc / ssh / ssh_host_ * root @ debian: ~ # dpkg-rekonfiguruj openssh-server I może też
zregenerować
1
@donatello Wygląda na to, że timedatectlmasz taką samą zależność od dbus ... dzięki za udostępnienie swojego rozwiązania!
Gergely Lukacsy
2

Aby zmienić hosta hosta EC2, należy wykonać następujące kroki:

  1. Zaloguj się jako root:$: sudo su -
  2. Zainstaluj dbus:$: apt-get update && apt-get install -y dbus
  3. Skonfiguruj nazwę hosta: hostnamectl set-hostname <HOSTNAME>

Pamiętaj o zmianie <HOSTNAME>nazwy hosta, którą chcesz ustawić.

lktslionel
źródło
0

W rzeczywistości nie musimy instalować żadnego pakietu, musimy po prostu edytować plik zgodnie z dystrybucją z poniższej listy.

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:~#

Edytuj wiersz jak poniżej (Skomentowany jest oryginalny wiersz), zastąp {{fqdn}} i {{nazwa hosta}} jak poniżej.

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

Alternatywnie, ustaw „manage_etc_hosts:” na false, jak poniżej, i możesz modyfikować plik / etc / hosts, ponieważ przestanie on zastępować plik hosts.

root@ServerOne:~# cat /etc/cloud/cloud.cfg.d/01_debian_cloud.cfg
apt_preserve_sources_list: true
manage_etc_hosts: true
root@ServerOne:~#
akjprajapati
źródło