¿Cómo configurar el nombre de host para un sistema Debian Jessie?

19

Debian Jessie viene con systemd. La recomendación para establecer el nombre de host es usar hostnamectl para systemd. Sin embargo, este comando no funciona (incluso para mostrar el nombre de host actual) en la imagen de Debian Jessie arrancada en EC2 :

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

Así que intenté seguir adelante con la recomendación de Debian aquí .

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

Sin embargo, después de cerrar sesión y volver a iniciar sesión, el nombre de host no cambia. Sin embargo, cambia después de un reinicio, pero eso no es deseable para mí.

Este método solía funcionar en Debian Wheezy.

Cualquier ayuda para hacer esto bien es apreciada.

donatello
fuente

Respuestas:

33

Encontró el problema. La base AMI en EC2 para Debian Jessie no tiene instalado dbus. hostnamectl parece necesitar dbus. Entonces la solución es:

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

Y entonces:

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

Esto funcionó.

donatello
fuente
3
Buena captura de la dependencia de dbus. FYI: He estado aprendiendo cómo configurar sistemas systemd y descubrí que hostnamectl set-hostname myhostnameactualiza automáticamente el contenido de /etc/hostname(el nombre de host estático), por lo que no es necesario el primer echocomando.
Anthony G - justicia para Monica
También advirtiendo sobre la LLUVIA existente, ¿pueden ajustarse también las matrices? root @ debian: ~ # rm / etc / ssh / ssh_host_ * root @ debian: ~ # dpkg-reconfigure openssh-server y quizás también
regen
1
@donatello Parece que también timedatectltiene la misma dependencia hacia dbus ... ¡gracias por compartir su solución!
Gergely Lukacsy
2

Para cambiar el host de su host EC2, debe seguir los pasos a continuación:

  1. Inicie sesión como root:$: sudo su -
  2. Instalar dbus:$: apt-get update && apt-get install -y dbus
  3. Configurar nombre de host: hostnamectl set-hostname <HOSTNAME>

Asegúrese de cambiar <HOSTNAME>con el nombre de host que desea establecer.

lktslionel
fuente
0

En realidad, no necesitamos instalar ningún paquete, solo necesitamos editar el archivo según su distribución de la lista a continuación.

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

Edite la línea como se muestra a continuación, (Una comentada es la línea original), reemplace {{fqdn}} y {{hostname}} como se muestra a continuación.

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

Alternativamente, establezca "manage_etc_hosts:" en falso como se muestra a continuación y podrá modificar el archivo / etc / hosts ya que dejará de anular el archivo hosts.

root@ServerOne:~# cat /etc/cloud/cloud.cfg.d/01_debian_cloud.cfg
apt_preserve_sources_list: true
manage_etc_hosts: true
root@ServerOne:~#
akprajapati
fuente