2017-04-05 56 views
0

您好我一直在尝试几乎所有的东西来访问我的vagrant虚拟机中的elasticsearch数据库。在这个论坛有很多线程,但他们都没有工作,这就是为什么我张贴。从vagrant访问elasticsearch

问题是,如果我输入:curl -X GET http://127.0.0.1:9200在vagrant之外我会得到我的elastisearch localhost的内容。

内无业游民的我通过连接到我的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 

我将能够从无业游民访问我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 

回答

2

您需要确保您的vagrant-elasticsearch正在监听所有网络接口(不仅是本地主机)

编辑文件/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。

我觉得最容易是一个静态IP设置为你的虚拟机正常工作,您可以编辑您Vagrantfile,并有(只是IP地址的例子)

Vagrant.configure("2") do |config| 
    ... 
    config.vm.network "private_network", ip: "192.168.90.103" 
    ... 
end 

那么你可以使用轻松访问elasticsearch http://192.168.90.103:9200

+0

我得到这个错误:/ sbin目录/ ifdown你的eth1 2>的/ dev/null的 这是因为config.vm.network “private_network” 的,IP: “192.168.90.103” 行。如果我删除它,我不会得到任何错误,但它不能解决我的问题 – Defoe

+0

嗡嗡声...你可以发布你的流浪汉文件,并提供你使用的流浪版本 –

+0

确定现在编辑,你可以在那里看到 – Defoe