python - 以编程方式在 Vagrant 中获取 vm 的 IP 地址

标签 python vagrant

我正在尝试创建一个可以启动、提供和销毁 vagrant boxes 的 rest api。 到目前为止,我已经设法完成了大部分简单的任务,例如配置、解析日志以确定配置是否成功、启动、停止、销毁虚拟机和解析日志以查找端口何时发生冲突并已重新映射。

但是,我无法弄清楚如何找到盒子从路由器的 DHCP 收到的新 IP。 我可以跑

vagrant ssh -c ifconfig

并尝试解析 IP 地址,但如果我不知道接口(interface)名称,它将无法工作。

有没有办法让 vagrant 报告它的本地 ip 是什么?或者有没有办法找到这个 ip?

我正在使用 python-vagrant将 python 与 vagrant 接口(interface),但此时甚至可以通过 python 执行 shell 命令。

谢谢

最佳答案

你可以告诉 Vagrant 使用一个特定的 IP 而不是通过添加一个随机的 IP

Vagrant.configure('2') do |config|
  config.vm.network :private_network, ip: '192.168.x.x'
end

你应该已经有了 Vagrant.configure 部分,这将使用你定义的特定 IP 来配置盒子。

关于python - 以编程方式在 Vagrant 中获取 vm 的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42811765/

相关文章:

python - 如何使用 cygwin 终端在 Windows 计算机上安装 python?

python - 在PyAudio中创建流后,如何不立即开始流式传输?

windows-10 - Virtual-box 无法启动 VM VERR_INTNET_FLT_IF_NOT_FOUND

vagrant - 为什么运行 "10.0.2.2"时不存在 "ifconfig"?

python - 从 python 列表对象和单引号中删除前缀

python - python中多个泛型协议(protocol)的输入输出如何使用TypeVar?

vagrant - 带 Knife 的Octohost在裸机上独奏? (UserError:未安装 Vagrant )

mysql - 将 MySQL Workbench 连接到 vagrant 时出现 SSH 问题

ubuntu - 如何通过浏览器 ping vagrant ip 和在 vagrant 上运行的项目

python - 使用 RenderCollision 显示 Harfang 3D 物理调试?