virginia recuperar ec2 east descargar conectar change aws archivo amazon-ec2 hostname

amazon ec2 - recuperar - ¿Podemos establecer nombres de host fáciles de recordar para las instancias de EC2?



recuperar key pair aws (11)

Claro, puede hacerlo si tiene su propio dominio (configure un CNAME para apuntar al nombre de host de Amazon). De lo contrario, estás bastante atrapado con el que te dan (o una dirección IP elástica, si configuras uno de ellos).

Estoy ejecutando un par de instancias estándar de Fedora en EC2. Siento que los nombres de host públicos de las instancias asignadas por Amazon son demasiado extraños y difíciles de recordar. Me gustaría cambiarlos a algo corto (como rojo / azul / verde / etc.).

¿Hay algún inconveniente en hacer esto? ¿Y cómo lo configuro para que persista después de reiniciar?

Gracias.


Desde este sitio :

Cambiar el nombre de host en un sistema en ejecución

En cualquier sistema Linux, puede cambiar su nombre de host con el comando ''nombre de host'' (¿está sorprendido?) ... Aquí hay algunos usos rápidos del nombre de host de la línea de comando:

$> nombre de host

sin ningún parámetro dará salida al nombre de host actual del sistema.

$> nombre de host --fqd

dará como resultado el nombre de dominio completo (o FQDN) del sistema.

$> nombre de host NEW_NAME

configurará el nombre de host del sistema a NEW_NAME.

También puede editar / etc / hostname (al menos en Ubuntu).

Para asegurarse de que permanezca después de reiniciar en AWS, agregue el comando en /etc/rc.local para que se ejecute cuando se inicie la máquina.

También hay una manera de establecer el nombre de host dinámicamente a través de USER_DATA :

USER_DATA = /usr/bin/curl -s http://169.254.169.254/latest/user-data

HOSTNAME = echo $USER_DATA

IPV4 = /usr/bin/curl -s http://169.254.169.254/latest/meta-data/public-ipv4

nombre de host $ HOSTNAME

echo $ HOSTNAME> / etc / hostname


Edite /etc/sysconfig/network como root.

Reemplazar

HOSTNAME=localhost.localdomain

con

HOSTNAME=hostname.DOMAIN_NAME

Luego, reinicie o ejecute /etc/init.d/network restart El servidor debe informar su nombre como FQDN.


En mi Linux AMI (una instantánea de otra instancia) ... ninguna de las fórmulas anteriores funcionó. Luego, simplemente cambié el campo HOSTNAME en el archivo: /etc/init.d/modifyhostname e hice un reinicio normal.


La solución /etc/rc.local funcionó para mí para un nombre de host básico, pero no me proporciona un FQDN.


Otra forma es simplemente editar ~/.bashrc y anteponer PS1 con el apodo de la máquina.

Editar: quizás más correctamente, en toda la máquina, por ejemplo, en AWS Linux AMI (un ejemplo) (pegar esto en la consola o agregar a su instalación arbitraria .sh):

cat << EOF | sudo tee /etc/profile.d/ps1.sh if [ "$PS1" ]; then PS1="[/u@myinst1:/l /t /! /W]//$ " fi EOF


Para cambiar el nombre de host del sistema a un nombre de DNS público

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

1) Abra el archivo de configuración /etc/sysconfig/network en su editor de texto favorito y cambie la entrada HOSTNAME para reflejar el nombre de dominio completo (como webserver.mydomain.com).

HOSTNAME=webserver.mydomain.com

2) Reinicia la instancia para recoger el nuevo nombre de host.

[ec2-user ~]$ sudo reboot

3) Inicie sesión en su instancia y verifique que el nombre de host se haya actualizado. Su mensaje debe mostrar el nuevo nombre de host (hasta el primer ".") Y el comando de nombre de host debe 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

1) Abra el archivo de configuración /etc/sysconfig/network en su editor de texto favorito y cambie la entrada HOSTNAME para reflejar el nombre de host del sistema deseado (como servidor web).

HOSTNAME=webserver.localdomain

2) Abra el /etc/hosts en su editor de texto favorito y agregue una entrada que comience con 127.0.1.1 (en sistemas DHCP) o dirección eth0 (en sistemas IP estáticos) para que coincida con el ejemplo siguiente, sustituyendo su propio nombre de host. (127.0.0.1 debería dejarse como la línea localhost).

127.0.0.1 localhost localhost.localdomain 127.0.1.1 webserver.example.com webserver

3) Reinicia la instancia para recoger el nuevo nombre de host.

[ec2-user ~]$ sudo reboot

4) Inicie sesión en su instancia y verifique que el nombre de host se haya actualizado. Su mensaje debe mostrar el nuevo nombre de host (hasta el primer ".") Y el comando de nombre de host debe mostrar el nombre de dominio completo.

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

Nota: También puede cambiar el indicador del shell sin afectar el nombre de host. Consulte esta docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-hostname.html :


Si no quiere meterse con su proveedor de DNS, podría usar alias para sus instancias. Me sorprendió mucho que Amazon no proporcionara una forma de dar un alias para una instancia de EC2 cuando salieron con AWS Management Console , pero mientras tanto, podría usar el servicio gratuito de RightScale si desea la función de alias, mucho más fácil que recordar esos ID de instancia de Amazon.


Tendrá que hacer varias cosas para establecer el nombre de host:

  1. hostname newname - establece el nombre de host, pero es volátil
  2. edit / etc / hostname - establece el nombre de host para el próximo reinicio
  3. edite / etc / hosts - para evitar que sudo se queje

Los puse juntos en un guión y lo cargué como una idea central: https://gist.github.com/mnebuerquo/5443532036af8b48995547e2817dba85


Antes de comenzar, intente ejecutar el hostname y el hostname --fqdn y tome nota de cuáles son las respuestas.

Puede editar /etc/hostname y establecer un nombre de host, que se mantendrá después de reiniciar. Puede forzar que el nombre de host se "vuelva a cargar" utilizando el hostname -F /etc/hostname para leer ese valor en el nombre de host. El mensaje bash cambiará después de que cierre la sesión e inicie sesión.

advertencia / nota :
Sí, es bueno tener el nombre de host en el prompt Bash configurado para algo más útil que ip-123-123-123-123 pero he decidido dejar el mío (al menos por ahora) porque parece que hay muchas cosas realmente cuenta con que el nombre de host en las instancias de ec2 se establezca de forma estándar. Después de editar /etc/hostname y cambiar el nombre de host a webserver muchos de los servicios parecen fallar porque el nombre de host no se resolvería y apache no se iniciaría. Luego edité /etc/hosts y agregué

127.0.0.1 webserver

como la segunda línea Apache comenzaría entonces pero se quejó de que no podía encontrar el FQDN. hostname --fqdn que el hostname --fqdn ejecución hostname --fqdn ya no funcionaba.

A continuación, consulté el man hostname y descubrí que si bien puede establecer el hostname , parece que el FQDN es lo que se devuelve a través de una búsqueda de DNS.

EL FQDN

No puede cambiar el FQDN (como lo devuelve el nombre de host --fqdn) ni el nombre de dominio DNS (tal como lo devuelve dnsdomainname) con este comando. El FQDN del sistema es el nombre que devuelve el resolvedor (3) para el nombre de host.

Técnicamente: el FQDN es el nombre que getaddrinfo (3) devuelve para el nombre de host devuelto por gethostname (2). El nombre de dominio DNS es la parte posterior al primer punto.

Por lo tanto, depende de la configuración (generalmente en /etc/host.conf) cómo puede cambiarla. Generalmente (si el archivo de hosts se analiza antes de DNS o NIS) puede cambiarlo en / etc / hosts.

Creo que podría ser posible configurar el sistema / engañar al sistema para que devuelva el FQDN, algo así como ip-123-123-123-123.ec2.internal aunque el nombre de host sea un webserver pero en este punto comenzó a parecer más problema que valió la pena, y que para mí tener un prompt bash más agradable podría causar un montón de problemas de software y configuración en el camino, así que decidí darme por vencido.

También aprendí que muchas instancias de Amazon EC2 usan algo llamado cloud-init :

cloud-init es el paquete de Ubuntu que maneja la inicialización temprana de una instancia en la nube. Está instalado en Ubuntu Cloud Images y también en las imágenes oficiales de Ubuntu disponibles en EC2.

Algunas de las cosas que configura son:

  • establecer una configuración regional predeterminada
  • establecer el nombre de host
  • generar claves privadas ssh
  • agregar claves ssh a .ssh / authorized_keys del usuario para que puedan iniciar sesión
  • configurar puntos de montaje efímeros

El comportamiento de cloud-init se puede configurar a través de datos de usuario. Los datos de usuario pueden ser dados por el usuario en el momento de inicio de la instancia. Esto se hace mediante el argumento --user-data o --user-data-file para ec2-run-instances

También encontré esto que habla sobre cómo el nombre de host está configurado con cloud-init:

En las instancias de EBS, un apagado y un inicio posterior terminarían con una dirección IP diferente.

En el caso en que el usuario no haya modificado / etc / hostname de su valor original (sembrado por el ''nombre-host local'' de metadatos), entonces cloud-init volverá a establecer el nombre de host y actualizará / etc / hostname.

En el caso en que el usuario haya modificado / etc / hostname, seguirá siendo administrado por el usuario.

Además, si /etc/cloud/cloud.cfg contiene el valor ''preserve_hostname'' establecido en un valor True, entonces / etc / hostname nunca será tocado.

Lo interesante es que si no cambia el nombre de host, el paquete cloud-init lo mantendrá actualizado.

Si alguien más tiene una solución alternativa o puede abordar algunos de los problemas mencionados y ayudar a asegurar que nada se rompa en las instancias de ec2 debido a cambiar el nombre de host, me complacería escucharlo.


sudo hostname *yourdesiredhostnamehere* sudo /etc/init.d/networking restart

entonces el nombre de host se cambia. En mi servidor funcionan todos los demás servicios, como apache y postfix. El servidor es Ubuntu 12.04 LTS