¿Cómo puedo asignar un nombre de host estático a una instancia de EC2 de Linux?

4 minutos de lectura
0

He cambiado el nombre del host de mi instancia de Amazon Elastic Compute Cloud (Amazon EC2). Sin embargo, cuando vuelvo a arrancar la instancia, o cuando la detengo y acto seguido la reinicio, el nombre del host vuelve a ser el original.

Solución

Importante: Antes de actualizar la instancia, crea una imagen de máquina de Amazon (AMI) de la instancia respaldada por Amazon Elastic Block Store (Amazon EBS).

Comprobación del nombre de host de la instancia existente

Sigue estos pasos:

  1. Utiliza SSH para conectarte a tu instancia de Linux.

  2. Para cambiar al usuario raíz, ejecuta el siguiente comando:

    sudo su -
  3. Para comprobar el nombre de host de la instancia, ejecuta el siguiente comando:

    hostnamectl

Configuración de un nombre de host estático

Configura un nombre de host estático para el sistema operativo (SO) que ejecutas.

AL2 o Al2023

Para Amazon Linux 2 (AL2) o Amazon Linux 2023 (AL2023), sigue estos pasos:

  1. Para abrir /etc/cloud/cloud.cfg, ejecuta el siguiente comando:

    vim /etc/cloud/cloud.cfg
  2. Revisa el atributo preserve_hostname. Si su valor es false, actualiza el valor a true.
    Ejemplo:

    preserve_hostname: true

    Nota: Si el archivo no tiene el atributo preserve_hostname, agrega el atributo al archivo y establece el valor en true.

  3. Para establecer el nombre de host estático, ejecuta el siguiente comando:

    hostnamectl set-hostname persistent-hostname

    Nota: Sustituye persistent-hostname por tu nombre de host.

Ubuntu

Para Ubuntu, sigue estos pasos:

  1. Para configurar el nombre de host estático, sigue estos pasos:

    hostnamectl set-hostname --static persistent-hostname

    Nota: Sustituye persistent-hostname por tu nombre de host.

  2. Para abrir /etc/hosts, ejecuta el siguiente comando:

    vim /etc/hosts
  3. Introduce la siguiente línea en el archivo:

    localhost persistent-hostname

    Nota: Sustituye persistent-hostname por tu nombre de host.

  4. Si tu instancia de EC2 usa IPv6, agrega los siguientes datos de configuración:

    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
  5. Para abrir /etc/cloud/cloud.cfg, ejecuta el siguiente comando:

    vim /etc/cloud/cloud.cfg
  6. Revisa el atributo preserve_hostname. Si su valor es false, actualiza el valor a true.
    Ejemplo:

    preserve_hostname: true

RHEL o CentOS 7, 8 y 9

Para Red Hat Enterprise Linux (RHEL) o CentOS 7, 8 y 9, sigue estos pasos:

  1. Para establecer el nombre de host estático, ejecuta el siguiente comando:

    hostnamectl set-hostname --static persistent-hostname

    Nota: Sustituye persistent-hostname por tu nombre de host.

  2. Para RHEL 7.3 o versiones anteriores, ejecuta el siguiente comando para abrir /etc/cloud/cloud.cfg:

    vi /etc/cloud/cloud.cfg
  3. Revisa el atributo preserve_hostname. Si el valor es false, actualiza el valor a true.
    Ejemplo:

    preserve_hostname: true

SUSE Linux

Para SUSE Linux Enterprise Server (SLES), sigue estos pasos:

  1. Para configurar el nombre de host, ejecuta el siguiente comando en función de tu versión de SLES.
    SLES 11:

    hostname persistent-hostname

    SLES 12 y 15:

    hostnamectl set-hostname persistent-hostname

    Nota: Sustituye persistent-hostname por tu nombre de host.

  2. Ejecuta el siguiente comando para actualizar el archivo /etc/HOSTNAME con tu nombre de host:

    echo "persistent-hostname" > /etc/HOSTNAME

    Nota: Sustituye HOSTNAME por tu nombre de host.

  3. Para abrir /etc/hosts, ejecuta el siguiente comando:

    vim /etc/hosts
  4. Introduce la siguiente línea en el archivo según tu versión de SLES y sustitúyela por tu nombre de host.
    SLES 11:

    127.0.0.1 localhost persistent-hostname

    SLES 12 y 15:

    127.0.0.1 localhost persistent-hostname

    Nota: Sustituye persistent-hostname por tu nombre de host.

  5. Para abrir el archivo /etc/cloud/cloud.cfg, ejecuta el siguiente comando:

    vim /etc/cloud/cloud.cfg
  6. Introduce la siguiente línea en el archivo:

    preserve_hostname: true

Implementación de los cambios

Sigue estos pasos:

  1. Para reiniciar la instancia, ejecuta el siguiente comando:

    reboot
  2. Para verificar el nuevo nombre de host, ejecuta el siguiente comando:

    hostnamectl

Solución de problemas

Si experimentas cambios inesperados en el nombre de host después del reinicio, realiza las siguientes acciones:

  • Consulta los registros del sistema en /var/log/cloud-init.log y /var/log/syslog para ver las entradas sobre los cambios de nombre de host.
  • Si instalas actualizaciones del sistema que afectan a /etc/hosts, al archivo de nombre de host o a la utilidad de nombre de host, vuelve a completar los pasos de resolución anteriores.
  • Comprueba que la configuración preserve_hostname sea true en el archivo /etc/cloud/cloud.cfg.

Información relacionada

Cambio del nombre de host de la instancia de AL2

OFICIAL DE AWSActualizada hace un mes