在vagrant多VM配置期间将文件从一个EC2实例下载到另一个EC2实例

时间:2015-09-05 14:49:32

标签: amazon-ec2 vagrant chef scp

我的应用程序包含两个组件:服务器和代理。 我正在使用Vagrant创建两个EC2实例。每个应用程序组件一个。 首先,我创建服务器实例并使用Chef配置它。 现在,我正在尝试配置代理程序实例。为此,我需要将代理部署包从服务器实例下载到代理实例。

最好的方法是将scp与服务器实例私有ip一起使用。 如何与代理提供流程(Chef)共享服务器专用IP地址?

1 个答案:

答案 0 :(得分:1)

似乎流浪者主机管理器插件(https://github.com/smdahlen/vagrant-hostmanager)可以提供帮助。

来自文档

  

您可以自定义方式,主机管理器如何为每个解析IP地址   机。对于aws提供程序(主机名),这可能很方便   存储在每台机器的ssh_info哈希中。这会导致产生   / etc / hosts文件无效。

     

自定义IP解析器为您提供计算IP地址的机会   每台机器由您自己,让您也可以访问该机器   正在更新/ etc / hosts。例如:

config.hostmanager.ip_resolver = proc do |vm, resolving_vm|
  if hostname = (vm.ssh_info && vm.ssh_info[:host])
    `host #{hostname}`.split("\n").last[/(\d+\.\d+\.\d+\.\d+)/, 1]
  end
end