¿Cómo puedo hacer que el /etc/hosts
archivo haga referencia a otro archivo de configuración para su lista de hosts?
Ejemplo /etc/hosts
:
## My Hosts
127.0.0.1 localhost
255.255.255.255 broadcasthost
#Other Configurations
<Link to /myPath/to/MyConfig/ConfigFile.txt>
#Other Addresses
3.3.3.3 MyAwesomeDomain.com
4.4.4.4 SomeplaceIWantToGoTo.com
ConfigFile.txt
##My additional Hosts
1.1.1.1 SomeLocation.com
2.2.2.2 AnotherLocation.com
¿Cómo agrego un enlace / referencia al /etc/hosts
archivo para que se cargue ConfigFile.txt?
LC_COLLATE
), por lo que la advertencia en su respuesta no se aplica.No es posible, ya que el formato suele estar profundamente codificado en la plataforma libc. Sin embargo, es imaginable que un sistema operativo agregue esta característica, por lo que no es una solución multiplataforma.
Alternativamente, puede actualizar automáticamente un determinado bloque en su archivo de hosts. Esto es particularmente útil si tiene un script que genera dinámicamente entradas de host para un determinado proyecto (posiblemente con cambios de IP).
Aquí hay un ejemplo: desea crear hosts desde el estado Terraform a través de
terraform-inventory
.Salida de inventario relevante (por ejemplo, mapeando una etiqueta "Nombre" de EC2 a grupos de exactamente un host cada uno):
print-updated-hosts-entries.sh
Salida de script:
Y la línea de comando para actualizar un bloque marcado
/etc/hosts
con la salida del script :Explicación:
sed
llamadas para imprimir todas las líneas antes y después del comienzo / final del marcador, respectivamente. Insertamos los marcadores en cualquier caso, colocando el resultado del script entre esas líneas. Incluso si el script falla, todavía tenemos que incluir el contenido de/etc/hosts
(y la copia de seguridad en un escenario catastrófico).sudo tee /etc/hosts.new
escribe el contenido canalizado en un nuevo archivosed -n '/^# MYMARKER BEGIN/,/^# MYMARKER END/p'
imprime el bloque actualizado para mayor comodidadsudo mv /etc/hosts.new /etc/hosts
mueve el nuevo archivo a su lugar. Esto debe hacerse en un paso separado porque si el búfer de tubería se queda sin espacio,tee /etc/hosts
comenzaría a escribir el archivo mientras el contenido existente aún se está leyendo.fuente
He tenido un requisito similar para trabajar sin problemas desde diferentes ubicaciones con IP dinámicas, especialmente desde que uso máquinas virtuales. Mi solución simple a esto es la siguiente:
Cree un script para actualizar las entradas de host para cada entidad. Por ejemplo, si tengo un host llamado 'myhost.net', con subdominios 'app.myhost.net', invocaría ese script y proporcionaría una dirección IP que se escribirá para cada dominio y se guardará en un archivo host llamado 'Mi anfitrión'. El mismo script tiene una bandera para eliminar o actualizar un solo archivo host.
Cree otro script para fusionar esos archivos en / etc / hosts. Este script encontrará todos los archivos de host que ha creado y los combinará en el único archivo de hosts en / etc / hosts.
Esto me ha funcionado perfectamente. Trabajo de forma remota y, a veces, necesito moverme de una ubicación a otra por cualquier motivo u otro, y la carga de editar ese archivo me agobia tantas veces. En cambio, solo ejecuto UN script. Sí, un guion. El primer script ejecuta automáticamente el otro para hacer la fusión automáticamente.
fuente