capistrano - name - vagrant share
¿Cómo encontrar la IP Vagrant? (9)
Abra el terminal, ven a la ruta de tu Vagrantfile y escribe esto
(Linux) vagabundo ssh -c "nombre de host -I | cut -d '''' -f2" 2> / dev / null
(OS X) vagabundo ssh -c "nombre de host -I | cut -d '''' -f2" 2> / dev / null | pbcopy
El comando para Linux también funciona para Windows. No tengo forma de probarlo, lo siento.
fuente: https://coderwall.com/p/etzdmq/get-vagrant-box-guest-ip-from-host
He estado desarrollando una implementación automatizada usando Capistrano y usando Vagrant como mi servidor virtual de prueba.
La cuestión es que necesito el IP de Vagrant para " ssh
into it".
Intenté ifconfig
y obtuve el IP, pero parece que no es exactamente el IP errado.
¿Alguien puede ayudarme a obtener el Vagrant IP?
Creo que necesito la IP para configurar /etc/hosts
en el sistema host para que apunte a los servicios en la máquina virtual nueva.
Aquí hay una versión aproximada de lo que uso para buscar la IP. Deje que Vagrant haga su magia SSH y solicite a la VM su dirección; ajustar para sus necesidades.
new_ip=$(vagrant ssh -c "ip address show eth0 | grep ''inet '' | sed -e ''s/^.*inet //'' -e ''s///.*$//''")
Acabo de encontrar esto en el Vagrant Docs . Parece que lo consideran un enfoque válido:
Esto asignará automáticamente una dirección IP desde el espacio de direcciones reservado. La dirección IP se puede determinar usando vagrant ssh para SSH en la máquina y usando la herramienta de línea de comandos adecuada para encontrar la IP, como ifconfig.
Desarrollé un pequeño complemento de dirección de vagabundo para eso. Es simple, multiplataforma, multiplataforma y no requiere scripts.
En el tipo de terminal:
ip addr show
Lo hice en VagrantFile:
REMOTE_IP = %x{/usr/local/bin/vagrant ssh-config | /bin/grep -i HostName | /usr/bin/cut -d/' /' -f4}
run "ping #{REMOTE_IP}"
Como puede ver, usé la función ruby "% x {}".
Necesitaba saber esto para decirle a un usuario qué agregar al archivo de host de la máquina host. Esto me funciona en vagrant usando solo bash:
external_ip=$(cat /vagrant/config.yml | grep vagrant_ip | cut -d'' '' -f2 | xargs)
echo -e "# Add this line to your host file:/n${external_ip} host.vagrant.vm"
Por defecto, un cuadro vagabundo no tiene ninguna dirección IP. Para encontrar la dirección IP, simplemente asigne la dirección IP en su Vagrantfile
luego llame a Vagrantfile
vagrant reload
Si solo necesita acceder a una máquina errante solo desde la máquina host, todo lo que necesita es configurar una "red privada". O elimine el comentario de la línea apropiada en un Vagrantfile
predeterminado o agregue este fragmento. Si desea que su máquina virtual aparezca en 172.30.1.5
, sería la siguiente:
config.vm.network "private_network", ip: "172.30.1.5"
Aprende más sobre redes privadas. https://www.vagrantup.com/docs/networking/private_network.html
Si necesita que se pueda acceder al vagabundo fuera de su equipo host, por ejemplo para desarrollarlo contra un dispositivo móvil como iOS o Android, debe habilitar una red pública, puede usar IP estática, como 192.168.1.10
, o DHCP.
config.vm.network "public_network", ip: "192.168.1.10"
Obtenga más información sobre cómo configurar una red pública https://www.vagrantup.com/docs/networking/public_network.html
Sé que esta publicación es antigua pero quiero agregar algunos puntos a esto!
puedes probar
vagrant ssh -c "ifconfig | grep inet" hostname
¡esto será fácil si ha configurado un nombre para sus invitados individualmente!
correr:
vagrant ssh-config > .ssh.config
y luego en config/deploy.rb
role :web, "default"
role :app, "default"
set :use_sudo, true
set :user, ''root''
set :run_method, :sudo
# Must be set for the password prompt from git to work
default_run_options[:pty] = true
ssh_options[:forward_agent] = true
ssh_options[:config] = ''.ssh.config''