es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Puedo definir el nombre de host (u otra variable) en la línea de comandos de Vagrant?

Quiero hacer algo así:

vagrant up --hostname="hello.world"

Sin embargo, no existe --hostname.

La razón por la que quiero esto es para que el proveedor (Ansible) pueda usarlo para modificar la provisión dependiendo del nombre de host.

También podría usar vagrant up hello.world (en cuyo caso Ansible lo podría usar como inventory_hostname), pero en ese caso necesitaría crear una entrada para hello.world en el Vagrantfile, lo cual no quiero hacer, ya que todos los posibles hosts utilizan la misma configuración del Vagrantfile. (Una alternativa podría ser especificar de alguna manera en el Vagrantfile “usar esta configuración independientemente del nombre de la máquina virtual”, pero tampoco sé cómo hacer eso).

Si nada de esto funciona, podría usar una variable de entorno, pero tampoco sé cómo procesarla en el Vagrantfile.

Tags:  

Answer

  1. Avatar for davy.ai

    Como no hay opción --hostname incorporada en Vagrant, tienes varias opciones para lograr el resultado deseado.

    Una opción es usar vagrant up hello.world, que establece el nombre de host en hello.world y permite que Ansible lo use como inventory_hostname. Sin embargo, esto requiere agregar una entrada para hello.world en el Vagrantfile, lo cual no deseas.

    Otra opción es especificar una variable de entorno personalizada en tu shell antes de ejecutar vagrant up. Por ejemplo, podrías establecer export VAGRANT_HOSTNAME=hello.world en tu shell, y luego acceder a esta variable en el Vagrantfile usando ENV['VAGRANT_HOSTNAME']. Esto te permitiría modificar el aprovisionamiento dependiendo del nombre de host, sin necesidad de agregar entradas al Vagrantfile.

    Una tercera opción es usar un complemento como vagrant-hostsupdater o vagrant-hosts, que actualiza automáticamente el archivo de hosts con el nombre de host de la máquina virtual. Esto te permitiría acceder a la máquina virtual usando un nombre de host personalizado como hello.world, sin necesidad de agregar manualmente una entrada al archivo de hosts.

    Por último, podrías considerar usar un script envolvente o Makefile para automatizar el proceso de establecer el nombre de host y ejecutar vagrant up. Esto te permitiría establecer el nombre de host de forma dinámica y utilizar la misma configuración del Vagrantfile para todos los posibles hosts.

Comments are closed.