您好我几乎要尝试从我的流浪汉VM访问我的elasticsearch数据库。在这个论坛中有很多线程,但它们似乎都没有工作,这就是我发布的原因。
问题是,如果我在流浪者之外键入:curl -X GET http://127.0.0.1:9200,我将获得我的弹性本地主机的内容。
在vagrant中我通过以下方式连接到我的mongodb数据库:
mongo 10.0.2.2:27017
因此,请遵循其中一个答案:
Vagrant reverse port forwarding?
我希望通过改变这个:
vagrant ssh -- -R 12345:localhost:80
进入这个:
vagrant ssh -- -R 12345:10.0.2.2:9200
如果输入的话,我可以从vagrant访问我的elasticsearch:
curl -X GET http://10.0.2.2:9200
但我没有得到任何东西......
这是我的流浪文件的内容:
Vagrant.configure(2) do |config|
# config.vm.box = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
config.vm.box = "xenial-amd64"
config.vm.box_url = "https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-vagrant.box"
config.vm.hostname = "proxy"
config.vm.network "private_network", ip: "192.168.90.103"
config.vm.provision :shell, :path => "provisions/shell/bootstrap.sh"
end
答案 0 :(得分:2)
您需要确保您的vagrant-elasticsearch正在侦听所有网络接口(不仅仅是localhost)
编辑文件/etc/elasticsearch/elasticsearch.yml
并更改一些内容
network.bind_host: 0
network.host: 0.0.0.0
# I do that for cors
http.cors.enabled: true
http.cors.allow-origin: /https?:\/\/.*/
确保在更改后重新启动elasticsearch。这将允许您从主机访问vagrant-elasticsearch。
我认为最简单的方法是为您的VM设置静态IP,您可以编辑您的Vagrantfile并拥有(只是IP地址的一个示例)
Vagrant.configure("2") do |config|
...
config.vm.network "private_network", ip: "192.168.90.103"
...
end
然后您可以使用http://192.168.90.103:9200
轻松访问elasticsearch