से Vagrant VM में Elasticsearch 2.0 तक नहीं पहुंच सकता है। मैं Elasticsearch 2.0 को ऊपर और एक Vagrant VM में चलाने की कोशिश कर रहा हूं। जिस विधि का मैं 1.7 के लिए उपयोग कर रहा था, अब काम नहीं करता है, इसलिए मैं अपनी विधि को अपडेट करने का प्रयास कर रहा हूं। मैं वीएम में ईएस 2.0 स्थापित कर सकता हूं, और ऐसा लगता है कि वीएम के भीतर से ठीक काम करता है, लेकिन मैं इसे वीएम के बाहर से नहीं एक्सेस कर सकता। ऐसा लगता है कि वीएम कुछ कारणों से पोर्ट-फॉरवर्डिंग पोर्ट 9200 नहीं है, भले ही मैं इसे कह रहा हूं। तो मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं क्या गलत कर रहा हूं।होस्ट ओएस
को देखते हुए इस Vagrantfile
:
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.hostname = "ES-2.0.0"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network :forwarded_port, host: 9200, guest: 9200
config.vm.synced_folder "/Users/sloan/code", "/srv/code"
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 1
v.name = config.vm.hostname.to_s
end
end
मेरे पुराने bootstrap.sh
ठीक काम करता है:
#!/usr/bin/env bash
sudo apt-get update
sudo apt-get upgrade
# install openjdk-7
sudo apt-get purge openjdk*
sudo apt-get -y install openjdk-7-jdk
# install curl
sudo apt-get -y install curl
# install Elasticsearch 1.7.3
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.tar.gz -O elasticsearch.tar.gz
tar -xf elasticsearch.tar.gz
rm elasticsearch.tar.gz
sudo mv elasticsearch-* elasticsearch
sudo mv elasticsearch /usr/local/share
# set up ES as service
curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
rm -Rf *servicewrapper*
sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
sudo ln -s 'readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch' /usr/local/bin/rcelasticsearch
# start ES service
sudo service elasticsearch start
# enable cors (to be able to use Sense)
sudo echo "http.cors.enabled: true" >> /usr/local/share/elasticsearch/config/elasticsearch.yml
# enable dynamic scripting
sudo echo "script.disable_dynamic: false" >> /usr/local/share/elasticsearch/config/elasticsearch.yml
sudo service elasticsearch restart
मेरा मतलब है कि यह भावना में काम करता है कि, मेजबान ओएस से (ओएस एक्स 10.9.5) मैं ईएस को ठीक कर सकते हैं ठीक है:
es173 > curl localhost:9200
{
"status" : 200,
"name" : "Gibbon",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.3",
"build_hash" : "05d4530971ef0ea46d0f4fa6ee64dbc8df659682",
"build_timestamp" : "2015-10-15T09:14:17Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
लेकिन जब मैंके इस नए संस्करण का उपयोग करता हूंजो मैं Elasticsearch दस्तावेजों (हमेशा एक कठिन कार्य) का पालन करने की कोशिश कर द्वारा पकाया:
#!/usr/bin/env bash
sudo apt-get update
sudo apt-get upgrade
# install curl
sudo apt-get -y install curl
# install openjdk-7
sudo apt-get purge openjdk*
sudo apt-get -y install openjdk-7-jdk
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo update-rc.d elasticsearch defaults 95 10
sudo /etc/init.d/elasticsearch start
# enable cors (to be able to use Sense)
sudo echo "http.cors.enabled: true" >> /etc/elasticsearch/elasticsearch.yml
# enable dynamic scripting
sudo echo "script.disable_dynamic: false" >> /etc/elasticsearch/elasticsearch.yml
sudo /etc/init.d/elasticsearch restart
काम नहीं करता है। वी एम के अंदर से, अपेक्षा के अनुरूप curl localhost:9200
काम करता है, लेकिन मेजबान ओएस से मिली:
es200 > curl localhost:9200
curl: (52) Empty reply from server
मैं यहाँ क्या याद आ रही है? क्या कोई मुझे बता सकता है कि नया संस्करण पोर्ट अग्रेषण क्यों नहीं है?
मुझे नहीं पता कि ईएस नेटवर्क विशिष्ट कॉन्फ़िगरेशन आपके सेटअप में कैसे है, लेकिन यह पहला होगा जो मैं देखता हूं। चूंकि प्रलेखन में उल्लिखित 2.0 में एक बड़ा परिवर्तन है, जिसका अर्थ यह है: 'वर्तमान में एक लोचदार खोज नोड कई पतों से बाध्य हो सकता है, लेकिन केवल एक प्रकाशित करता है।' यह पहले ऐसा नहीं था। 2.0 में ऐसा करने का एक तरीका 'network.bind_host: 0' सेट करना प्रतीत होता है। –
क्या यह 'elasticsearch.yml' में जाता है? मैंने कोशिश की, ऐसा प्रतीत नहीं होता है। –
मैं कैसे पता लगा सकता हूं कि "ईएस नेटवर्क विशिष्ट विन्यास" मेरे सेटअप में क्या है? '/ Etc/elasticsearch/elasticsearch.yml' में दो (अब तीन) सेटिंग्स जोड़ने के अलावा, मैंने किसी भी तरह से डिफ़ॉल्ट सेटिंग्स को नहीं बदला है। –