मेरे पास एडब्ल्यूएस पर एक आरओआर आवेदन है। मेरा ऐप खोज इंजन के लिए सोलर का उपयोग कर रहा है, लेकिन प्रत्येक परिनियोजन के बाद, ऐप फिर से इंडेक्स करने में असमर्थ है।लोचदार बीनस्टॉक परिनियोजन के बाद सोलर का स्वचालित पुनरारंभ
chmod 777 -R /solr /tmp /log
RAILS_ENV=production rake sunspot:solr:stop # or I kill the processus if it doesn't work :D
RAILS_ENV=production rake sunspot:solr:start
RAILS_ENV=production rake sunspot:reindex
अब मैं एक ईबी विस्तार तैनाती को स्वचालित करने के रूप में यह सेटअप करने के लिए कोशिश कर रहा हूँ: तो मैं अनुमतियों को रीसेट और साथ मैन्युअल Solr पुनः आरंभ करना।
#!/bin/bash
chmod 777 -R solr/ log/ tmp/
RAILS_ENV=production rake sunspot:solr:restart
परिणाम तैनाती करता नहीं है:
container_commands:
1_change_permissions:
command: chmod 700 .ebextensions/setup.sh
2_restart_solr:
command: bash .ebextensions/setup.sh
और यहाँ setup.sh स्क्रिप्ट है: यहाँ क्या मैं अपने .ebextensions/deploy.config में करने की कोशिश की है असफल हो, लेकिन केवल अनुमतियां सही ढंग से बदल दी गई हैं, और सोलर सेवा चल रही है लेकिन जब मैं कुछ इंडेक्स करने का प्रयास करता हूं, तो यह विफल हो जाता है (पूछताछ ठीक काम करती है)।
मैं भी सर्वर को रोकने के लिए पहले इस ऐप्लिकेशन का मेरी .ebextensions में एक आदेशों ब्लॉक जोड़कर तैनात किया जाता है की कोशिश की/deploy.config (और मैं अपने श स्क्रिप्ट बदल पुनः आरंभ करने के बजाय सेवा शुरू करने के लिए):
commands:
1_stop_solr:
command: cd /var/app/current & RAILS_ENV=production rake sunspot:solr:stop
मैं यह त्रुटि (मैं जहां यह क्रियान्वित किया जाता है से पता नहीं है) मिल गया:
[2015-06-25T09: 51: 35.510Z] जानकारी [13207] - [सीएमडी-AppDeploy/AppDeployStage0/EbExtensionPreBuild/इंफ्रा-EmbeddedPreBuild/prebuild_0_My_First_Elastic_Beanstalk_Application/कॉम और 1_stop_solr]: गतिविधि निष्पादन विफल रहा, क्योंकि: रेक निरस्त हो गया! घर के माहौल नहीं पा सके - के विस्तार `~ '
संपादित करें 1 (जय की टिप्पणी के बाद): सूचीकरण प्रक्रिया से किया जाता है जब मैं वस्तुओं को बचाने के।
यहाँ एक इकाई के लिए एक उदाहरण है (और जहां यह विफल रहता है):
class Document < ActiveRecord::Base
# .....
# SolR entity
searchable do
text :title, :description, :tags
integer :user_id
end
# .....
end
** संपादित करें 2: **
जेम्स 'जवाब है, समस्या हल नहीं होती लेकिन मुझे पता है कि मेरे EC2 उदाहरण पर मैन्युअल रूप से, मैं सिर्फ 2 निम्नलिखित लाइनों चला सकते हैं:
chmod 777 -R solr/ tmp/ log/
RAILS_ENV=production rake sunspot:reindex"
मैं एक के बाद तैनाती स्क्रिप्ट बनाने के लिए जेम्स 'लिंक का उपयोग करने की कोशिश की, और chmod अच्छी तरह काम करता है, लेकिन मैं जब जोड़ने फ़ाइल में अनुक्रमणः आदेश, तैनाती इस त्रुटि के साथ विफल: इसके अलावा
[2015-07-07T16:26:25.509Z] INFO [20402] - [CMD-AppDeploy/AppDeployStage1/AppDeployPostHook/99_restart_delayed_job.sh] : Activity execution failed, because: rake aborted!
Could not find rake-10.4.2 in any of the sources
/var/app/current/config/boot.rb:3:in `<top (required)>'
/var/app/current/config/application.rb:1:in `<top (required)>'
/var/app/current/Rakefile:4:in `<top (required)>'
, अगर मैं आदेश मैन्युअल रूप से (के बाद तैनाती स्क्रिप्ट chmod के बाद) चलाने का प्रयास है, यह करने के लिए प्रत्येक आइटम पर 500 त्रुटियों के साथ विफल रहता है पुन: अनुक्रमणिका। तो मुझे सोलर सर्वर को मारने, फिर शुरू करने और फिर रीइंडेक्स की आवश्यकता है।
यह वास्तव में दर्दनाक है :)
आप दस्तावेज़ों को कैसे का अनुक्रमण कर रहे हैं? एक स्क्रिप्ट का उपयोग करना? Solr की post.jar फ़ाइल का उपयोग करना? मेरा अनुमान है कि जिस प्रक्रिया में इंडेक्स में सोलर के इंडेक्स फ़ोल्डर पर लिखने की अनुमति नहीं है। यह समझा सकता है कि आप क्यों पूछ सकते हैं (केवल अनुमति की आवश्यकता है) लेकिन इंडेक्स नहीं कर सकता। – jay
मैंने अपनी पोस्ट इंडेक्सेशन के उदाहरण के साथ अपडेट की। मदद के लिये शुक्रिया! –