我多年来一直在使用 VirtualBox 来创建开发环境。
我的很多同事都在谈论 Vagrant,很多人似乎对它非常兴奋,但我似乎无法掌握它的好处..在我看来,这是一系列新命令需要学习才能做到这一点我用 Virtualbox 做的事情。
使用VirtualBox,我完美地安装和配置了一个环境,然后我可以将其打包为OVA或其他任何内容并与其他办公用户共享。如果出现问题,您可以在 VirtualBox 中拍摄快照。
Puppet 和 Chef 并不是 Vagrant 的一部分,他们是自己的东西,对吧?
所以是的,Vagrant 比 VirtualBox 本身有什么好处?
根据源代码 - 不是,但如果我错了怎么办?
所以最后一个问题:是否可以在没有/vagrant同步文件夹的情况下运行流浪虚拟机(虚拟机驱动)?
当 vagrant 配置服务器时,我想在主机上运行一个 bash 脚本。
实现这一目标的最佳方法是什么?
当我将它添加到我的盒子列表时,我拼错了盒子的名称:
vagrant box list
debian
ubnutu
Run Code Online (Sandbox Code Playgroud)
我可以重命名盒子而不重新包装它吗?
到达 ssh 部分时 vagrant up 失败:
myterminal$ vagrant up
[default] VM already created. Booting if its not already running...
[default] Running any VM customizations...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- ssh: 22 => 2222 (adapter 1)
[default] -- db2: 30003 => 30003 (adapter 1)
[default] Cleaning previously set shared folders...
[default] Creating shared folders metadata...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect …Run Code Online (Sandbox Code Playgroud) 所以我在我的 MAC 书上遇到了“hashicorp/precise64”的 Vagrant 设置问题。
首先,我的配置:
VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) 做 |config| config.vm.box = "hashicorp/precise64" config.vm.network "public_network", 输入: "dhcp", :bridge => 'en4: Thunderbolt Ethernet' config.vm.hostname = "mddirector" 结尾
这是 'vagrant up' 的输出
==> 默认值:尝试正常关闭 VM...
==> 默认值:检查框 'hashicorp/precise64' 是否是最新的...
==> 默认值:清除任何先前设置的转发端口...
==> 默认值:清除任何先前设置的网络接口...
==> 默认:根据配置准备网络接口...
默认值:适配器 1:nat
默认值:适配器 2:桥接
==> 默认值:转发端口...
默认值:22 => 2222(适配器 1)
==> 默认:启动虚拟机...
==> 默认值:等待机器启动。这可能需要几分钟的时间...
默认:SSH 地址:127.0.0.1:2222
默认值:SSH 用户名:vagrant
默认值:SSH 身份验证方法:私钥
默认值:警告:连接超时。正在重试...
==> 默认值:机器已启动并准备就绪!
GuestAdditions 4.3.10 正在运行 --- 好的。
==> 默认值:正在检查 VM 中的来宾添加...
==> 默认值:设置主机名...
==> … 如何在 Ubuntu 中将 Vagrant 升级到最新版本?
$ sudo apt-get update
$ sudo apt-get install vagrant
$ vagrant -v
Vagrant 1.4
Run Code Online (Sandbox Code Playgroud)
最新版本是 1.6.5
我正在通过 Vagrant/Virtualbox 使用 Ubuntu 12.04 VM(hashicorp/precise32)。与我的主机系统相比,它的下载速度似乎非常慢。这是我在主机系统 (OSX) 和 speedtest-cli 上得到的结果:
Testing download speed........................................
Download: 845.62 Mbits/s
Testing upload speed..................................................
Upload: 296.03 Mbits/s
Run Code Online (Sandbox Code Playgroud)
这就是我在来宾操作系统(Ubuntu 12.04)中得到的:
Testing download speed........................................
Download: 12.41 Mbits/s
Testing upload speed..................................................
Upload: 247.64 Mbits/s
Run Code Online (Sandbox Code Playgroud)
所以主机下载速度快了70倍!对这些问题的通常反应是这样的:
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
end
Run Code Online (Sandbox Code Playgroud)
但是我已经将它配置到我的 Vagrantfile 中。
我还使用普通的 Virtualbox 和 12.04(无 Vagrant)对此进行了测试。当我使用 NAT 接口时会出现同样的问题。但是,切换到桥接模式会使下载速度提高 20 倍。这很糟糕,因为 Vagrant 依赖于 NAT 接口始终为 eth0。
我使用 OSX Mavericks 作为主机系统。Virtualbox 版本是 4.3.18。
有任何想法吗?
我在 Windows 7 机器中使用 Vagrant,但在使用 ssh 客户端时遇到问题。我想知道如何使 Vagrant 变得“详细”(在报告中不仅仅是一条用户友好的消息),以及是否可以更改日志级别。
我有一个在 VirtualBox 上运行的 vagrant box,我需要制作一个副本(包含所有现有的配置和数据),以便我可以对其进行更改而不影响原始配置。
问题是我原来的盒子是一个文件包——我使用的互联网连接非常慢,所以其他人将他们的 vagrant 和 virtualbox 文件夹复制到我的机器上。因此没有
config.vm.box_url
Run Code Online (Sandbox Code Playgroud)
使用。
我怎样才能做到这一点?
编辑:我正在使用 Vagrant 1.2.2