2016-02-26 97 views
0

我尝试启动elasticsearch并在Vagrantfile上配置其模式。 但是,当我在Vagrantfile上使用curl放置架构json文件时,虽然elasticsearch已成功启动,但会发生“连接被拒绝”错误。卷曲到Elasticsearch“连接被拒绝”Vagrantfile

卷曲-X PUT http://192.168.33.20:9200/test --data二进制@/synced_folder/schema.json

[错误消息]

0curl:(7)无法连接到192.168.33.20:9200;连接被拒绝

※vagrant up结束后,该命令成功。具体...

须藤SSH 192.168.33.20

卷曲-X PUT http://192.168.33.20:9200/test --data二进制@/synced_folder /模式。 json

这没有错误,模式已成功配置。

{ “承认”:真正}

但是,我想在 “流浪者” 的过程配置模式。 为什么Vagrantfile上发生“连接被拒绝”错误?

[Vagrantfile]

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
config.vm.box = "bento/centos-7.1" 
config.vm.box_url = "https://atlas.hashicorp.com/bento/boxes/centos-7.1" 
config.vm.network :private_network, ip: "192.168.33.20" 
config.vm.synced_folder "./", "/synced_folder" 
config.vm.provision "shell", path: "./script.sh" 
end 

[script.sh]

#!/bin/sh 

#install java 
yum -y install java 

#install and start elasticsearch 
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch 
cp /synced_folder/elasticsearch.repo /etc/yum.repos.d 
yum -y install elasticsearch 
sed -i '/# network.host: 192.168.0.1/a\network.host: 192.168.33.20' /etc/elasticsearch/elasticsearch.yml 
cd /usr/share/elasticsearch 
#Japanese morphological analysis plugin 
bin/plugin install analysis-kuromoji 
service elasticsearch start 

#configure index 
curl -X PUT http://192.168.33.20:9200/test --data-binary @/synced_folder/schema.json 

[/synced_folder/schema.json]

{"mappings":{"comment_data":{"properties":{"comment":{"type":"string","store":"yes","index":"analyzed"},"date":{"type":"date","store":"yes"},"vps":{"type":"float","store":"yes"}}}}} 
+0

禁用防火墙,如果它正在运行('sudo systemctl disable firewalld'),看看它是否有帮助 –

+0

谢谢!我首先认为“firewalld”是其原因,并尝试过它,但这不是原因。 – masataka

+0

请问您可以检查telnet 192.168.33.20 9200'响应吗?这听起来像港口不可访问。 –

回答

2

我能解决这个问题。 我发现elasticsearch实际上是在服务启动几秒钟后启动的。 所以我给shell脚本添加了一个等待进程。 谢谢!

while true; 
do 
    echo "waiting Elasticsearch..." 
    curl -X -s GET http://192.168.33.20:9200 
    if [ $? -eq "0" ]; then 
     echo "Elasticsearch started!" 
     break 
    fi 
    sleep 1s 
done 
+0

哦......老兄...救了我#vagrant#ubuntu-14.04 #bash #shell – Relic