我的应用程序包含两个组件:服务器和代理。 我正在使用Vagrant创建两个EC2实例。每个应用程序组件一个。 首先,我创建服务器实例并使用Chef配置它。 现在,我正在尝试配置代理程序实例。为此,我需要将代理部署包从服务器实例下载到代理实例。
最好的方法是将scp与服务器实例私有ip一起使用。 如何与代理提供流程(Chef)共享服务器专用IP地址?
答案 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