当我在 Windows 上使用 vagrant 时,我有时会发现没有正确遵守换行符。这通常是在执行vagrant ssh. 所以文字最终看起来像
This machine with the name 'default' was not found
configured for this environment.
Run Code Online (Sandbox Code Playgroud)
在 bash 中,当发生这种终端错误时,我可以运行reset它并清除并重置终端设置。我怎样才能在 Powershell/CMD 中做类似的事情而不必杀死窗口并启动一个新的 powershell/cmd 会话?
是否可以将HyperV 虚拟机设置为具有静态 IP并且还可以访问互联网?(在最新的Windows 10 专业版上)
总结一下,需求是这样的:
机器是由 Vagrant 创建的,但可能需要手动调整 - 因为 Vagrant静态 IP 错误在这里开放。
附注。我是网络开发人员,对网络有基本的了解,所以请记住这一点并提供可能的解释:)
所以我有一个用于 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 …
Vagrant Up 期间身份验证失败,而 vagrant ssh 和 ssh vagrant@localhost -p2222 有效
我想在启动时使用 Vagrant 执行一个 shell 脚本。Vagrant 无法进行身份验证,而 VM 已使用vagrant up以下方式启动:
c:\temp\helloworld>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'helloworld'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: helloworld_default_1398419922203_60603
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 => …Run Code Online (Sandbox Code Playgroud) 我正在使用版本化的盒子,但没有使用 Vagrant Cloud(我有一个自定义的盒子主机)。下载版本化的盒子效果很好。
但是,当我在本地开发我的盒子的新版本时,我不想每次想要升级 Vagrant 中加载的盒子的版本时都必须经历上传/下载周期。换句话说,我想运行vagrant box add,同时指定一个较新的版本和一个本地文件。
vagrant box add似乎有一个选项--box-version,但这是为了限制正在下载的盒子的版本,而不是用于指定要添加的盒子的版本。无论如何尝试指定 box-version 会导致:
您使用直接的 box 文件路径指定了 box 版本约束。Box 版本约束仅适用于来自 Vagrant Cloud 或自定义 Box 主机的 Box。请删除版本限制,然后重试。
但我并不是要限制我添加的内容;我正在尝试指定. 任何形式的框添加似乎都将版本设置为 0。有什么方法可以解决这个问题并告诉 Vagrant 我要添加什么版本?
我有一个precise32(ubuntu 12.04)vagrant vm 在我的系统上运行。如果我尝试 ping 一个随机字符串,例如ping "thisip.doesnot"它解析为 IP 198.105.254.228。这是我输入的任何其他随机字符串的尝试。为什么会发生这种情况?如何更改此行为并使其响应“ping:未知主机 thisip.doesnot”
在 OSX (MacBook Pro)、Ubuntu 14.04 来宾、VirtualBox 4.3.26 上使用 vagrant 1.7.2。Mac 通过标准 WiFi 接口与世界相连。
我希望 Vagrant 机器使用本地 LAN 上的桥接网络作为它们的主要(也是唯一)接口。这是试验 tcptraceroute 所必需的,它不能通过 NAT 网络做正确的事情。我现在在 Vagrantfile 中的内容是:
Vagrant.configure(2) do |config|
config.vm.provider "virtualbox"
config.vm.network "public_network", bridge: "en0: Wi-Fi (AirPort)"
config.vm.box = 'ubuntu/trusty64'
end
Run Code Online (Sandbox Code Playgroud)
我在 Vagrant 盒子里得到的是:
$ ip -o -4 a
1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever
2: eth0 inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0\ valid_lft forever preferred_lft forever
3: eth1 inet 172.16.69.16/24 brd 172.16.69.255 scope global eth1\ …Run Code Online (Sandbox Code Playgroud) 在我中,Vagrantfile我定义了以下提供者:
摘自 Vagrantfile:
Run Code Online (Sandbox Code Playgroud)config.vm.provider :virtualbox do |vb| vb.gui = false vb.customize ["modifyvm", :id, "--memory", "4096"] end
当我free -m在创建的 VM 中运行时,我看到以下报告:
total used free shared buffers cached
Mem: 3953 337 3615 0 18 119
-/+ buffers/cache: 199 3753
Swap: 0 0 0
Run Code Online (Sandbox Code Playgroud)
是否可以在构建和配置 VM 时分配 swappiness?
我已经尝试设置vm.swappiness中/etc/sysctl.conf并重新启动虚拟机,但我没有看到添加交换空间的VM的任何影响。
为什么需要交换空间?我宁愿根本不处理交换空间并在内存中运行所有内容。但是,对于某些应用程序(例如 PHP 的 Composer 项目),在某些情况下会因使用大量内存而臭名昭著。如果没有交换空间,我必须非常自由地分配给 VM 的内存量,如果我有交换空间——尽管它可能效率不高——理论上我会遇到更少的问题。
vagrant ×10
virtualbox ×5
networking ×4
bridge ×1
cmd.exe ×1
command-line ×1
hostname ×1
hyper-v ×1
ipv6 ×1
linux ×1
linux-kvm ×1
memory ×1
powershell ×1
qemu ×1
ssh ×1
swap ×1
ubuntu ×1
vpn ×1
windows ×1