Cambiar el nombre de host de la instancia de Amazon Linux - Amazon Elastic Compute Cloud

Cambiar el nombre de host de la instancia de Amazon Linux

Al iniciar una instancia en una VPC privada, Amazon EC2 le asigna un nombre de anfitrión del sistema operativo invitado. El tipo de nombre de host que Amazon EC2 asigna depende de la configuración de la subred. Para obtener más información acerca de los nombres de host de EC2, consulte Tipos de nombres de host de instancias de Amazon EC2.

Un nombre de DNS privado de Amazon EC2 típico, para una instancia de EC2 configurada para utilizar asignación de nombre con una dirección IPv4, tiene un aspecto similar a este: ip-12-34-56-78.us-west-2.compute.internal, donde el nombre consta del dominio interno, el servicio (en este caso, compute), la región y una forma de la dirección IPv4 privada. Parte de este nombre de host se muestra en el símbolo de shell cuando inicia sesión en la instancia (por ejemplo, ip-12-34-56-78). Cada vez que para y reinicia la instancia Amazon EC2 (salvo que esté usando una dirección IP elástica), la dirección IPv4 cambia y también lo hace el nombre DNS público, el nombre de host del sistema y el símbolo del shell.

importante

Esta información se aplica a Amazon Linux. Para obtener información acerca de otras distribuciones, consulte la documentación específica.

Cambiar el nombre de host del sistema

Si tiene un nombre DNS público registrado para la dirección IP de la instancia (como webserver.mydomain.com), puede establecer el nombre de host del sistema de manera que la instancia se identifique como una parte de ese dominio. Esto cambia también el símbolo del shell para mostrar la primera parte del nombre en lugar del nombre de host que proporciona AWS (por ejemplo, ip-12-34-56-78). Si no tiene un nombre DNS público registrado, puede cambiar el nombre del host pero el proceso varía un poco.

Para que la actualización del nombre de host persista, debe verificar que la configuración preserve_hostname cloud-init esté establecida en true. Puede ejecutar el siguiente comando para editar o agregar esta configuración:

sudo vi /etc/cloud/cloud.cfg

Si la configuración preserve_hostname no aparece en la lista, agregue la siguiente línea de texto al final del archivo:

preserve_hostname: true
Para cambiar el nombre de host del sistema por un nombre DNS público

Siga este procedimiento si ya tiene un nombre DNS público registrado.

    • Para Amazon Linux 2: utilice el comando hostnamectl para que el nombre de host refleje el nombre de dominio completo (como webserver.mydomain.com).

      [ec2-user ~]$ sudo hostnamectl set-hostname webserver.mydomain.com
    • Para Amazon Linux AMI: en la instancia, abra el archivo de configuración /etc/sysconfig/network en el editor de texto de su elección y cambie la entrada HOSTNAME para que refleje el nombre de dominio completo (como webserver.mydomain.com).

      HOSTNAME=webserver.mydomain.com
  1. Reinicie la instancia para actualizar el nuevo nombre de host.

    [ec2-user ~]$ sudo reboot

    También puede reiniciarla utilizando la consola de Amazon EC2 (en la página Instances (instancia[s]), seleccione la instancia y elija Instance state (Estado de la instancia) y Reboot instance [Reiniciar instancia]).

  2. Inicie sesión en la instancia y compruebe que el nombre de host se ha actualizado. El símbolo debería mostrar ahora el nuevo nombre de host (hasta el primer ".") y el comando hostname debería mostrar el nombre de dominio completo.

    [ec2-user@webserver ~]$ hostname webserver.mydomain.com
Para cambiar el nombre de host del sistema sin un nombre DNS público
    • Para Amazon Linux 2: utilice el comando hostnamectl para que el nombre de host refleje el nombre de host del sistema deseado (como webserver).

      [ec2-user ~]$ sudo hostnamectl set-hostname webserver.localdomain
    • Para Amazon Linux AMI: en la instancia, abra el archivo de configuración /etc/sysconfig/network en el editor de texto que prefiera y cambie la entrada HOSTNAME para que refleje el nombre de host del sistema deseado (como webserver).

      HOSTNAME=webserver.localdomain
  1. Abra el archivo de configuración /etc/hosts en el editor de texto que prefiera y cambie la entrada que comienza por 127.0.0.1 para que coincida con el ejemplo siguiente, cambiando el nombre de host por el suyo.

    127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4
  2. Reinicie la instancia para actualizar el nuevo nombre de host.

    [ec2-user ~]$ sudo reboot

    También puede reiniciarla utilizando la consola de Amazon EC2 (en la página Instances (instancia[s]), seleccione la instancia y elija Instance state (Estado de la instancia) y Reboot instance [Reiniciar instancia]).

  3. Inicie sesión en la instancia y compruebe que el nombre de host se ha actualizado. El símbolo debería mostrar ahora el nuevo nombre de host (hasta el primer ".") y el comando hostname debería mostrar el nombre de dominio completo.

    [ec2-user@webserver ~]$ hostname webserver.localdomain

También puede implementar más soluciones de programación, como especificar los datos del usuario para configurar la instancia. Si la instancia forma parte de un grupo de escalado automático, puede usar enlaces de ciclo de vida para definir los datos del usuario. Para obtener más información, consulte Ejecutar comandos en la instancia de Linux durante la inicialización y Lifecycle hook for instance launch (Enlace de ciclo de vida para la inicialización de una instancia) en la Guía del usuario de AWS CloudFormation.

Cambiar el símbolo de shell sin que afecte al nombre de host

Si no desea modificar el nombre de host de la instancia, pero quiere que se muestre un nombre de sistema más útil (como webserver) que el nombre privado que proporciona AWS (por ejemplo, ip-12-34-56-78), puede modificar los archivos de configuración del símbolo del shell para mostrar el alias del sistema en lugar del nombre del host.

Para cambiar el símbolo del shell por una alias de host
  1. Cree un archivo en /etc/profile.d que establezca la variable de entorno llamada NICKNAME en el valor que desea para el símbolo del shell. Por ejemplo, para establecer el alias del sistema en webserver, ejecute el comando siguiente.

    [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/profile.d/prompt.sh'
  2. Abra el archivo /etc/bashrc (Red Hat) o /etc/bash.bashrc (Debian/Ubuntu) en el editor de texto que prefiera (por ejemplo, vim o nano). Debe utilizar sudo con el comando del editor porque /etc/bashrc y /etc/bash.bashrc son propiedad de root.

  3. Modifique el archivo y cambie la variable del símbolo del shell (PS1) para que muestre el alias en lugar del nombre de host. Busque la línea siguiente que establece el símbolo del shell en /etc/bashrc o /etc/bash.bashrc (abajo se muestran algunas de las líneas que lo rodean como contexto; busque la línea que comienza por [ "$PS1"):

    # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows

    Cambie \h (el símbolo de hostname) de esa línea por el valor de la variable NICKNAME.

    # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@$NICKNAME \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows
  4. (Opcional) Para establecer el título de las ventanas del shell en el nuevo alias, complete los pasos siguientes.

    1. Cree un archivo denominado /etc/sysconfig/bash-prompt-xterm.

      [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm
    2. Haga el archivo ejecutable con el siguiente comando.

      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm
    3. Abra el archivo /etc/sysconfig/bash-prompt-xterm en el editor de textos que prefiera (como vim o nano). Debe utilizar sudo con el comando del editor porque el propietario de /etc/sysconfig/bash-prompt-xterm es root.

    4. Añada la línea siguiente al archivo.

      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
  5. Cierre sesión y vuelva a iniciarla para actualizar el nuevo valor del alias.

Cambiar el nombre de host en otras distribuciones de Linux

Los procedimientos de esta página son para usar con Amazon Linux únicamente. Para obtener más información acerca de otras distribuciones de Linux, consulte su documentación específica y los artículos siguientes: