Como definir o nome do host para um sistema Debian Jessie?

19

O Debian Jessie vem com systemd. A recomendação para definir o nome do host está usando hostnamectl para systemd. No entanto, este comando não funciona (mesmo para exibir o nome do host atual) na imagem Debian Jessie inicializada no EC2 :

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

Então, tentei seguir em frente com a recomendação do Debian aqui .

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

No entanto, depois de sair e fazer login novamente, o nome do host não muda. No entanto, ele muda após uma reinicialização, mas isso não é desejável para mim.

Este método costumava funcionar no Debian Wheezy.

Qualquer ajuda para obter esse direito é apreciada.

donatello
fonte

Respostas:

33

Encontrei o problema. A AMI base no EC2 para o Debian Jessie, não possui o dbus instalado. O hostnamectl parece precisar do dbus. Portanto, a correção é:

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

E depois:

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

Isso funcionou.

donatello
fonte
3
Boa captura da dependência do dbus. FYI: Aprendi como configurar sistemas systemd e descobri que hostnamectl set-hostname myhostnameatualiza automaticamente o conteúdo de /etc/hostname(o nome do host estático) para que não seja necessário o primeiro echocomando.
Anthony G - justice for Monica
Também alertando sobre o RAIN existente, as matrizes também podem ser ajustadas? root @ debian: ~ # rm / etc / ssh / ssh_host_ * root @ debian: ~ # dpkg-reconfigure openssh-server E talvez regen initrd também
RZR
1
@donatello Parece que também timedatectltem a mesma dependência do dbus ... obrigado por compartilhar sua solução!
Gergely Lukacsy
2

Para alterar o hostanme do seu host EC2, siga as etapas abaixo:

  1. Faça o login como root:$: sudo su -
  2. Instale o dbus:$: apt-get update && apt-get install -y dbus
  3. Nome do host de instalação: hostnamectl set-hostname <HOSTNAME>

Certifique-se de alterar <HOSTNAME>com o nome do host que você deseja definir.

lktslionel
fonte
0

Na verdade, não precisamos instalar nenhum pacote, apenas precisamos editar o arquivo conforme sua distribuição na lista abaixo.

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 a linha como abaixo: (Uma comentada é a linha original), substitua {{fqdn}} e {{hostname}} como abaixo.

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

Como alternativa, defina "manage_etc_hosts:" como false, como abaixo, e você poderá modificar o arquivo / etc / hosts, pois ele deixará de substituir o arquivo 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
fonte