标签: vagrant

Vagrant 转发一系列端口

有没有办法使用 vagrant 1.2.1 或更高版本转发一系列端口?我知道您可以使用以下方法单独转发任意数量的端口

config.vm.forward_port 80, 4567
Run Code Online (Sandbox Code Playgroud)

或者,答案是干脆不使用 vagrant 来做这样的事情?

port-forwarding vagrant

21
推荐指数
1
解决办法
1万
查看次数

apt-get安装后阻止Apache启动

当我apt-get install apache2在安装完成时服务器自动启动,默认的 Apache 配置使/var/www/客户端可以访问所有内容。因此,如果我在安装 Apache 之前在该目录中有任何封闭源代码服务器端脚本或其他秘密信息,那么在我更改 Apache 配置并重新启动 Apache 或直到我停止 Apache 之前,它都是可公开访问的。

我可以做这个

sudo apt-get install -y apache2
sudo service apache2 stop
# Finish setting up...
Run Code Online (Sandbox Code Playgroud)

然后只有一个简短的窗口可以访问秘密内容,但最好让 Apache 完全不自动启动,/var/www/甚至一刻也不暴露。

是否有任何我可以传递的选项apt-get install或其他方法来防止 Apache 在安装后自动启动?

apache-2.2 vagrant ubuntu-12.04

16
推荐指数
2
解决办法
2497
查看次数

带有加密 ubuntu 主目录的 NFS

我在使用 vagrant 设置 NFS 时遇到问题:

在我的本地机器上,我安装了 NFS:

apt-get install nfs-common nfs-kernel-server
Run Code Online (Sandbox Code Playgroud)

在我的 Vagrantfile 中将其设置为使用:

config.vm.share_folder("v-root", "/vagrant", ".", :nfs => true)
Run Code Online (Sandbox Code Playgroud)

vagrant up我得到:

exportfs: /home/<user>/path/to/dir does not support NFS export

Mounting NFS shared folders failed. This is most often caused by the NFS
client software not being installed on the guest machine. Please verify
that the NFS client software is properly installed, and consult any resources
specific to the linux distro you're using for more information on how to …
Run Code Online (Sandbox Code Playgroud)

ubuntu nfs puppet vagrant ubuntu-12.04

15
推荐指数
2
解决办法
7345
查看次数

Vagrant 共享文件夹和文件更改事件

我有通过 Vagrant 访问的 ubuntu 虚拟机。在我的主机 (Mac OSX) 上,有一个包含几个文件的文件夹,我将这些文件共享给虚拟机。在那个虚拟机中,我想使用guard来监视文件更改并在这些文件中的任何一个发生更改时执行一些操作。

我正确设置了警卫,当从虚拟机中更改共享文件时,它可以正常工作并运行适当的脚本。但是,如果我尝试从我的主机更改共享文件,则此文件更改事件不会传播并且防护不会做出反应。

这就是我的 vagrant 共享文件夹的样子(非常常见的东西)

local_config.vm.share_folder "app", "/var/www/app/current", "../app"
Run Code Online (Sandbox Code Playgroud)

我什至尝试使用 NFS 共享 ( :nfs => true) 但它没有帮助。

有没有办法让文件更改事件从主机传播到虚拟机?或者这是 Vagrant/VirtualBox 的本质?

更新:

经过更多的试验,我安装了ZenTest gem,它包含自动测试工具,允许有关文件更改事件的类似功能。

在虚拟机中运行自动测试并从我的主机更改文件时,这些更改会传播并自动测试做出反应

基于此,似乎文件更改事件传播是保护问题,而不是流浪者或虚拟框。

不过,我还没有研究保护和自动测试之间的实现差异。

现在我知道可以从虚拟机中的主机捕获文件更改事件。有没有人知道如何使用守卫实现这一目标?我更喜欢guard,因为它的DSL 和通用的可用性。

filesystems virtual-machines file-sharing virtualbox vagrant

15
推荐指数
1
解决办法
6868
查看次数

流浪错误:连接超时。重试

我有一台装有 Ubuntu 12.04、Virtualbox 4.3 和 Vagrant 1.5.1 的服务器。我正在尝试使用这个框http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210.box但是没有成功。当我运行“vagrant up”时,我收到以下消息:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos-64-x64-vbox4210'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: rafael_default_1396403974194_51967
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu virtualbox vagrant ubuntu-12.04

14
推荐指数
2
解决办法
7万
查看次数

上游服务器中的 Nginx http 前缀

我正在尝试使用 nginx 代理传递给两个 docker 容器。这是我的上游 conf 文件:

upstream api_servers {
  server http://192.168.49.4:49155;
  server http://192.168.49.4:49156;
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试加载它的内容:

nginx: [emerg] invalid host in upstream "http://192.168.49.4:49155" in /etc/nginx/conf.d/api_upstream.conf:3
nginx: configuration file /etc/nginx/nginx.conf test failed
Run Code Online (Sandbox Code Playgroud)

一旦我删除了 http:// 前缀,错误就会停止发生。这是为什么?

nginx centos vagrant

14
推荐指数
2
解决办法
2万
查看次数

vagrant box的公共静态ip

我有一个带有 1 个以太网卡和 2 个公共静态 IP(188.120.245.4 和 188.120.244.5)的服务器(Debian Squeeze)。

我想要什么:通过静态 IP (188.120.244.5) 访问设置虚拟框 (Ubuntu)。

我在尝试什么:

  • config.vm.forward_port - 好主意:在主机上用 188.120.244.5 设置接口“eth1:1”,并添加到 Vagrant 文件“config.vm.forward_port = hmm ..?”
  • config.vm.network :hostonly, "188.120.244.5" - 不工作。在主机上创建了新接口,IP 为“188.120.244.1”。当然 188.120.244.1 IP 不是我的,我无法通过这个 IP 访问我的服务器。
  • config.vm.network :bridged - 我很困惑这是如何工作的:)

我现在拥有的是:不工作的配置。

Debian-host-machine# cat Vagrantfile
Vagrant::Config.run do |config|
  config.vm.define :gitlab do |box_config|
    box_config.vm.box = "ubuntu"
    box_config.vm.host_name = "ubuntu"
    box_config.vm.network :bridged
    box_config.vm.network :hostonly, "188.120.244.5", :auto_config => false
  end
end

Debian-host-machine# ifconfig
eth1      Link encap:Ethernet  HWaddr 00:15:17:69:71:bb  
          inet addr:188.120.245.4  Bcast:188.120.247.255  Mask:255.255.248.0

lo        Link …
Run Code Online (Sandbox Code Playgroud)

networking nat routing vagrant

13
推荐指数
1
解决办法
4万
查看次数

无法通过 SSH 连接到 Vagrant 虚拟机

本地 Vagrant 机器安装在10.0.0.23主机名的IP 地址上lamp-vm

使用vagrant ssh命令,我可以正常连接并做我需要的一切。

这会产生错误

$ ssh vagrant@lamp-vm -v -v

debug1:连接到地址 10.0.0.23 端口 22:连接超时
ssh:连接到主机 lamp-vm 端口 22:连接超时

我的/etc/hosts文件包含10.0.0.23 lamp-vm.

我的 .ssh/config 文件看起来像

主机 lamp-vm
用户 vagrant
IdentityFile ~/.ssh/vagrant

我也尝试过使用和不使用 ssh 命令-i /path/to/.sh/identity_file

如何使用 SSH 连接到我的 Vagrant 虚拟机?

ssh configuration port-forwarding localhost vagrant

12
推荐指数
4
解决办法
5万
查看次数

在脚本中更改 mysql 绑定地址

从 shell 脚本更改 my.cnf 中的 mysql 绑定地址的最佳方法是什么?有没有办法使用像 mysqladmin 这样的工具,或者我应该使用 sed 还是我应该简单地将它附加到 my.cnf 并希望第二个条目覆盖第一个条目(这听起来很恶心)。我尝试为 vagrant 编写一个简单的 shell 配置器,它在安装 mysql-server 后运行,以允许来自 vm 外部的连接。

mysql shell provisioning vagrant

12
推荐指数
2
解决办法
1万
查看次数

将虚拟机(vagrant)暴露给本地 Wifi

我已经使用 Vagrant (www.vagrantup.com) 设置了一个本地虚拟机 (ubuntu 12.4),并且需要在我的本地 wifi 网络上共享其资源。它基本上运行一个网络服务器,本地网络上的其他机器应该可以访问它。

我的本地 wifi 适配器从路由器获取动态 IP 地址。

我当前的配置如下所示,但我无法使用 IP 从另一台机器访问该机器:

config.vm.network :private_network, ip: "192.168.56.101"
    config.vm.network :forwarded_port, guest: 80, host: 8080
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?任何帮助表示高度赞赏!

virtualization linux ubuntu vagrant

11
推荐指数
1
解决办法
2万
查看次数