所以我有一个用于 VPN 连接的接口 ( jnc0),还有一个通过另一个单独的接口 ( vboxnet1)与我的机器对话的流浪客机。我的主机操作系统是 OS X Mountain Lion,而 Vagrant (VM) 来宾操作系统是 CentOS 6.3。
我如何设置一些东西,以便 CentOS 来宾能够通过我的 OS X 主机与 VPN 另一端的主机通信?
我正在尝试使用以下 Vagrantfile 设置一个带有 vagrant 和 libvirt 的框
Vagrant.configure("2") do |config|
config.vm.define :test_vm do |test_vm|
test_vm.vm.box = "test"
test_vm.vm.network :private_network, :ip => '10.20.30.40'
end
config.vm.provider :libvirt do |libvirt|
libvirt.driver = "qemu"
libvirt.host = "localhost"
libvirt.connect_via_ssh = false
libvirt.username = "root"
libvirt.storage_pool_name = "data"
end
end
Run Code Online (Sandbox Code Playgroud)
在 RHEL 6.4 上,我收到以下错误
Error while connecting to libvirt: Error making a connection to libvirt URI qemu://localhost/system?no_verify=1:
Call to virConnectOpen failed: Unable to import client certificate /etc/pki/CA/cacert.pem
Run Code Online (Sandbox Code Playgroud)
我试图像这里描述的那样设置证书http://libvirt.org/remote.html#Remote_TLS_CA但这并没有改变任何东西。
如果我尝试通过 ssh 连接 vagrant 能够缓慢上传盒子,但之后我会遇到下一次失败
Call …Run Code Online (Sandbox Code Playgroud) 我有一个在 VirtualBox 中运行 Ubuntu 的 Vagrant 设置。我正在尝试创建一个可以从主机访问的公共虚拟网络接口。我用 ipv4 做这个没有问题。使用 ipv6 我将界面设置为:
guest$ ip link add derpcraft link eth1 type macvlan mode bridge;
guest$ ip -6 addr add fdfe:dcba:9876:ffff::/64 dev derpcraft
guest$ ip link set derpcraft up
Run Code Online (Sandbox Code Playgroud)
界面看起来像:
derpcraft Link encap:Ethernet HWaddr 26:22:d5:54:95:00
inet6 addr: fe80::2422:d5ff:fe54:9500/64 Scope:Link
inet6 addr: fdfe:dcba:9876:ffff::/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:264 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:52989 (52.9 KB) TX bytes:2040 (2.0 KB)
Run Code Online (Sandbox Code Playgroud)
从主机上,我似乎无法在接口上 ping …
我最近刚接触 Docker,我对其工作原理的了解非常有限,目前我在决定采用哪种方式时受到时间的限制。
我一直在想,我可以设置一个 vagrant box,或者只是一个 Ubuntu VM,使用 Virtualbox,然后让 Docker 启动并运行。
这是为了处理 PHP7/Nginx/Laravel 应用程序
我的问题是 - 这可以正常工作吗?会不会有性能问题?我在 Ubuntu 上的经验是,让这些类型的东西(例如 Docker)比在 Windows 上工作要简单得多。
此外,我可以在预先存在的 vagrant box 中寻找什么,这将使我能够尽快使用 Docker(在 vagrant box 上运行)进行设置?
谢谢!
当我vagrant up使用 VirtualBox 作为提供程序运行时,它会创建一个ubuntu-xenial-16.04-cloudimg-console.log在项目根目录中调用的日志文件。这给 PHPStorm 带来了困难,因为它没有从搜索中排除单个文件的选项,只有文件夹。
我想在_log目录中创建这个日志文件,但我找不到如何配置它的位置;Vagrantfile 文档中似乎没有任何内容,而且我在 VirtualBox GUI 中找不到任何选项。
我还尝试将文件符号链接到 /dev/null,但是如果链接存在,VirtualBox 甚至拒绝启动。我不能在 VM 启动时简单地删除该文件,因为它锁定了它。
简化版Vagrantfile如下:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/xenial64"
config.disksize.size = "10GB"
config.vm.network "forwarded_port", guest: 80, host: 80, host_ip: "127.0.0.1"
config.vm.network "forwarded_port", guest: 3306, host: 3306, host_ip: "127.0.0.1"
config.vm.synced_folder ".", "/var/www/html"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "2048"
end
config.vm.provision "shell", inline: <<-SHELL
# redacted …Run Code Online (Sandbox Code Playgroud) 我正在将 Laravel Homestead 与 Vagrant 一起使用,我认为使用 Hyper-V 而不是 Virtual Box 会更有意义,因为它与 Windows 集成在一起。
这是我的问题。我的 Hyper-v 虚拟机时不时会获得一个新 IP,通常是 172.20.83.X。当我分配 ips 来测试域时,这会弄乱我的主机文件。因此,每次我的 hyper-v 服务器获得新 ip 时,我都必须重新输入新 ip,这很快变得非常乏味。
我想知道是否有办法将 ip 设置为在我的机器上始终相同。
我尝试修改服务器的虚拟交换机管理器,但最终失去了完整的互联网。
我在 vagrant 创建的虚拟机中有一个 postgresql 服务器。
我还通过 Vagrant 文件设置了从盒子内的 5432 到主机系统上的 15432 的端口转发。
通过连接时 psql
$ psql dbname username -h 127.0.0.1 -p 15432
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
Run Code Online (Sandbox Code Playgroud)
服务器和客户端都运行 Ubuntu 12.04(postgresql-9.1,版本:9.1+129ubuntu1)
在虚拟机内部连接到端口 5432 工作正常。
自行转发的端口似乎并没有完全出错,因为当我尝试到另一个端口时,我得到“连接被拒绝”)
我在 Windows 上设置了一个 Vagrant Ubuntu 12.04 盒子(VirtualBox 作为提供者),并且在过去几个月里一直运行良好。昨天,我又增加了转发端口到VagrantFile,做vagrant halt和vagrant up。登录后,我安装的任何程序都不在那里(which git什么也没显示)。
我可以通过 VirtualBox gui 手动启动 VM,一切正常,所以我知道它在那里并且可以正常工作。我在这个相关的 stackoverflow 问题中尝试了解决方案,但vagrant up仍然没有启动现有的虚拟机。
这是我的 Vagrant VM 的 VirtualBox 日志:http : //paste.ubuntu.com/6460060/
不知道还有什么地方可以看。有没有办法强制 vagrant 加载现有的 VM?
编辑:这也是我的 VagrantFile。这是非常标准的,但我想它可能会有所帮助。https://gist.github.com/gorrillamcd/7694989
请记住,在我对 VagrantFile 进行更改之前,机器运行良好。这是唯一在功能性和非功能性之间发生变化的东西。
如何删除 Vagrant box 的所有痕迹,而无需手动进入文件系统?
我正在使用 Packer 创建一个自定义框,构建和销毁大量测试用例。完成测试用例后,我运行
vagrant destroy
Run Code Online (Sandbox Code Playgroud)
vagrant help该命令描述为
停止并删除vagrant机器的所有痕迹
世界上一切似乎都很好。然而,当我在全新安装后创建一个新盒子时,我注意到当天的消息说虚拟机是几天前创建的。事实证明,盒子(也)存储在.vagrant.d\boxes. Vagrant 正在使用这些盒子,而不是 Packer 创建的盒子,或者除了 Packer 创建的盒子之外,后者位于完全不同的位置。
vagrant 文档vagrant destroy建议使用vagrant box remove.
现在,目录中仍然有一个框.vagrant.d\boxes。使用vagrant box remove需要一个“名称”。
如果我跑步vagrant box list,它会说
没有安装盒子!用来
vagrant box add添加一些。
显然 Vagrant 不知道另一个盒子。然而,如果我运行vagrant global-status,我会得到类似的输出
id name provider state directory
-------------------------------------------------------------------------
47d1c7c default virtualbox poweroff C:/some/path
Run Code Online (Sandbox Code Playgroud)
所以,Vagrant可以看到一些盒子。尝试使用vagrant box remove,“name”或“id”引用都不起作用:
C:\some\path>vagrant box remove default
The box you requested …Run Code Online (Sandbox Code Playgroud) 我在 Windows 机器上的开发工作流程中使用 vagrant。有时,我忘记在重新启动或关闭 Windows 之前执行vagrant halt或suspend。我读到这可能会破坏您的虚拟机。
当 Win 7 主机关闭时,有没有办法自动挂起或关闭我的流浪虚拟机?
vagrant ×10
virtualbox ×6
networking ×3
docker ×1
hyper-v ×1
ipv6 ×1
linux ×1
linux-kvm ×1
packer ×1
postgresql ×1
qemu ×1
ubuntu ×1
vpn ×1
windows-10 ×1
windows-7 ×1
windows-xp ×1