# Vagrant up時にcurlすると"connection refused"になってしまう。

**URL:** <https://discuss.elastic.co/t/vagrant-up-curl-connection-refused/43097>\
**Category:** 日本語による質問・議論はこちら\
**Created:** [March 1, 2016, 9:47am UTC](https://discuss.elastic.co/t/vagrant-up-curl-connection-refused/43097 "2016-03-01T09:47:31Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![masataka-okudera](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@masataka-okudera](https://discuss.elastic.co/u/masataka-okudera)\
**Post date:** [March 1, 2016, 9:47am UTC](https://discuss.elastic.co/t/vagrant-up-curl-connection-refused/43097/1 "2016-03-01T09:47:31Z")

</div>

お世話になります。

vagrantでelasticsearchをインストールして、curlでJSONを投げてindexを作成するところまでを行おうとしているのですが、

> > curl -X PUT [http://192.168.33.20:9200/test](http://192.168.33.20:9200/test) --data-binary @/synced\_folder/schema.json

とcurlでindexを作成しようとすると、"connection refused"エラーが発生してしまいます。

原因が推測できる方がいらっしゃったら、助けて頂けますと幸いです。

[各ソフトウェアのバージョン]  
Centos7.1  
Java8  
Elasticsearch 2.2.0  
Vagrant 1.7.2

以下、ファイルの内容です。

[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

systemctl disable firewalld
yum -y install nmap

#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
bin/plugin install analysis-kuromoji
service elasticsearch start

#configure index 
# ここでconnection refusedが発生
curl -X PUT http://192.168.33.20:9200/test --data-binary @/synced_folder/schema.json
nmap 192.168.33.20
```

[/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"}}}}}
```

尚、"vagrant up"が完了してから、sshでゲストOSにログインして

> > curl -X PUT [http://192.168.33.20:9200/test](http://192.168.33.20:9200/test) --data-binary @/synced\_folder/schema.json

を手で実行すると、なぜかその場合は正常にインデックスが作成されます。

しかし、やはりvagrant upの起動プロセスの中でインデックスの作成までを行いたいと思っています。

これまでに調べた事としては、  
・firewalldを無効化する。

> > systemctl disable firewalld

でfirewalldを無効化してみました。最初はこれが原因かと思ったのですが、違ったようです。

・nmapで192.168.33.20:9200を調査

> > nmap 192.168.33.20:9200

で空いているportを調査しました。  
この結果、"vagrant up"の実行中は22ポートしか空いておらず、9200ポートは空いていない事が判明しました。

・httpdには正常にアクセスできる。  
Elasticsearchの問題ではなく、Vagrantのport forwardの設定の方に問題がある可能性もあると思い、apacheサーバーもインストールして試してみたのですが、こちらでは"connection refused"は発生せず、正常にアクセスできました。  
従って、Elasticsearchの設定に問題があるのではと考えています。

どうぞよろしくお願い致します。

---

<div class="post-metadata">

**Author:** ![johtani](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/johtani/32/44956_2.png) [@johtani](https://discuss.elastic.co/u/johtani)\
**Post date:** [March 3, 2016, 6:09am UTC](https://discuss.elastic.co/t/vagrant-up-curl-connection-refused/43097/2 "2016-03-03T06:09:45Z")

</div>

'service elasticsearch start'のコマンド自体は、起動しましたと帰ってくるけど、  
Javaのプロセスや実際の起動までに時間がかかっているとかはないでしょうか？

---

<div class="post-metadata">

**Author:** ![masataka-okudera](https://avatars.discourse-cdn.com/v4/letter/m/b487fb/32.png) [@masataka-okudera](https://discuss.elastic.co/u/masataka-okudera)\
**Post date:** [March 4, 2016, 5:08pm UTC](https://discuss.elastic.co/t/vagrant-up-curl-connection-refused/43097/3 "2016-03-04T17:08:34Z")

</div>

Jun Ohtaniさん

ありがとうございます！

ご指摘の通り、起動するまでのタイムラグが原因でした。  
以下のように待機処理を追加することで、うまくいきました。

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

大変助かりました。  
ありがとうございました！

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 1:49pm UTC](https://discuss.elastic.co/t/vagrant-up-curl-connection-refused/43097/4 "2017-07-06T13:49:13Z")

</div>


