рд░реЗрд▓рд┐рдВрдЧ рдХреЗ рддрд╣рдд рдУрдкрдирд┐рдВрдЧрд╢рд┐рдлреНрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдлрд┐рдВрдХреНрд╕ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП

рдореИрдВ рдЕрдкрдиреА рдЫреЛрдЯреА рд░реЗрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдордВрдЪ рдХреЗ рд▓рд┐рдП рдУрдкреЗрдВрд╢рд┐рдлреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддреИрдирд╛рддреА, рд╕рднреА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╕рдмрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЖрддреНрдорд╛ рдХреЛ рдФрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП? рд▓реЗрдХрд┐рди рдЖрддреНрдорд╛ рд╕реНрдлрд┐рдВрдХреНрд╕ рдЪрд╛рд╣рддреА рдереА, рдФрд░ рд╕рд╛рде рд╣реА рд╡рд╣ рдмрд╣реБрдд рдЪрд╛рд╣рддреА рдереАред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдХрд╛рд░рддреВрд╕ рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрдлрд┐рдВрдХреНрд╕ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕рд▓рд╛рд╣ рдХреЗ рд▓рд┐рдП Google рдкрд░ рдЧрдпрд╛ред
рд▓реЗрдХрд┐рди Google рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ ... рдареАрдХ рд╣реИ, рдпрд╛ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВред рд╕рднреА рдиреЗ DIY рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА, рд╕рдм рдХреБрдЫ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реЛрд▓ рдХрд┐рдпрд╛, рдореЗрд░реЗ рдХреБрдЫ рджреЛрд╕реНрддреЛрдВ рдиреЗ рдореБрдЭреЗ AWS рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреА, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдорд╛рдирдирд╛ тАЛтАЛрдЪрд╛рд╣рддрд╛ рдХрд┐ OpenShift рдХреЗ рддрд╣рдд рдЖрдк рд╕реНрдлрд┐рдВрдХреНрд╕ рдирд╣реАрдВ рдмрдврд╝рд╛ рд╕рдХрддреЗред рдФрд░ рдЪреВрдВрдХрд┐ рдЖрд╡реЗрджрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЗрд▓ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рддрд╣рдд рдХрддрд╛рдИ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╛ рддреЛ DIY рдмрдирд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рдореИрдВ рдпрд╣ рд╕реЛрдЪрдиреЗ рд▓рдЧрд╛ рдХрд┐ рдПрдХ рддреИрдпрд╛рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреИрд╕реЗ рдмрдврд╝рд╛рдКрдВред
рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВ рдХреНрдпрд╛ рд▓реЗрдХрд░ рдЖрдпрд╛ рдерд╛ред

рд╕реНрдлрд┐рдВрдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


OpenShift рдореЗрдВ rpm рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рднреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдбрд╛рд▓реЗрдВрдЧреЗред рд╣рдо рдкреГрд╖реНрда sphinxsearch.com/downloads/release рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ , "Source tarbal" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкреГрд╖реНрда рдХреЗ рдмрд╣реБрдд рдиреАрдЪреЗ рд╕реНрдерд┐рдд рд▓рд┐рдВрдХ рдХреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ (" sphinxsearch.com/files/sphinx-2.0.6-release.ar.gz ")ред рдореЗрд░реА рд░рд┐рд▓реАрдЬрд╝ 2.0.6 рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред
рдЕрдм ssh рдХреЗ рддрд╣рдд рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдкрд░ рдЬрд╛рдПрдВ:

rhc app show -a [APP_NAME] 


рд╣рдо "Git URL" рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЙрд╕рдореЗрдВ рд╕реЗ рд╣рдо рдХреЗрд╡рд▓ UUID рдХреЗ рдкрддреЗ рдХреЛ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕рдХреЗ рдиреАрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЕрдм tmp рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдБ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ spinx рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 cd $OPENSHIFT_TMP_DIR wget http://sphinxsearch.com/files/sphinx-2.0.6-release.tar.gz tar -zxfv sphinx-2.0.6-release.tar.gz cd sphinx-2.0.6-release ./configure --prefix=$OPENSHIFT_RUNTIME_DIR make install 


рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЙрдкрд╕рд░реНрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╕реЛрдЪ-рд╕рдордЭрдХрд░ рд╕реЗрдЯрдЕрдк


рдЕрдм рд╣рдореЗрдВ ThinkingSphinx рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ OpenShift рдХреА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рднреА рд╣реИрдВ)ред рддреЛ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдУрдкрдирд╢рд┐рдлреНрдЯ рд╣рдореЗрдВ Sphinx рдХреЛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд╕реЗ рдмрд╛рдВрдзрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрдЧрд╛ , рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ $ OPENSHIFT_INTERNAL_IP рдХрд╛ рдЙрдкрдпреЛрдЧ OpenShift рдкрд░ рд╕рднреА рдмрд╛рдЗрдВрдбрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рднреА рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ Openshift рдХреЗ рд╕рднреА рдкреЛрд░реНрдЯ рдЖрдкрдХреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рджреЗрдВрдЧреЗред рдЙрдкрд▓рдмреНрдз рдкреЛрд░реНрдЯ 15,000 - 35530 рд╕реЗ рд▓реЗрдХрд░ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдЧ onfig / sphinx.yml рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

 production: address: <%=ENV['OPENSHIFT_INTERNAL_IP']%> port: 15000 


рдореИрдВрдиреЗ рдЗрд╕ рдмрдВрджрд░рдЧрд╛рд╣ рдХреЛ рдЪреБрдирд╛, рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдореВрд▓реНрдпреЛрдВ рдХреЗ рднреАрддрд░ рд╣реИред
рдПрдХ рдФрд░ рд╕реАрдорд╛ рд╣реИред OpenShift рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдорд╛рдирдХ рд░реЗрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ , рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  searchd_log_file: <%=File.join(ENV['OPENSHIFT_LOG_DIR'],'searchd.log')%> query_log_file: <%=File.join(ENV['OPENSHIFT_LOG_DIR'],'searchd.query.log')%> pid_file: <%=File.join(ENV['OPENSHIFT_LOG_DIR'],'searchd.production.pid')%> 


рдЪреВрдБрдХрд┐ рд╣рдорд╛рд░рд╛ рд╕рд░реНрдЪрдб рдбреЗрдорди рдорд╛рдирдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИ , рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

  bin_path: <%=File.join(ENV['OPENSHIFT_RUNTIME_DIR'],'bin')%> searchd_binary_name: 'searchd' indexer_binary_name: 'indexer' 


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдорд┐рд▓рд╛:
 production: searchd_log_file: <%=File.join(ENV['OPENSHIFT_LOG_DIR'],'searchd.log')%> query_log_file: <%=File.join(ENV['OPENSHIFT_LOG_DIR'],'searchd.query.log')%> pid_file: <%=File.join(ENV['OPENSHIFT_LOG_DIR'],'searchd.production.pid')%> address: <%=ENV['OPENSHIFT_INTERNAL_IP']%> port: 15000 bin_path: <%=File.join(ENV['OPENSHIFT_RUNTIME_DIR'],'bin')%> searchd_binary_name: 'searchd' indexer_binary_name: 'indexer' 


рддреИрдирд╛рддреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ


рдЕрдм рд╣рдореЗрдВ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, .openshift / action_hooks / рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
 bundle exec rake ts:config RAILS_ENV="production" bundle exec rake ts:rebuild RAILS_ENV="production" 

рдпрд╣ рдПрдХ рдирдИ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдбреЗрдореЙрди рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдорд╛рд░реЗ рдбреЗрдорди рдЕрдм рддреИрдирд╛рддреА рдХреЗ рджреМрд░рд╛рди рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрд░реЛрди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╣рд░ рдорд┐рдирдЯ рдлрд┐рд░ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде .openshift / cron / minutely рдПрдХ sphinx_rebuild рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
 !#/bin/bash cd $OPENSHIFT_REPO_DIR bundle exec rake ts:rebuild RAILS_ENV="production" 

рдпрд╣реА рд╣реИ, рдЕрдм рд╣рд░ рдорд┐рдирдЯ рд╕реНрдлрд┐рдВрдХреНрд╕ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдПрдЧрд╛, рддрд╛рдХрд┐ рдЖрдкрдХрд╛ рдЗрдВрдбреЗрдХреНрд╕ рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдмрдирд╛ рд░рд╣реЗред

рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдм рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдордВрдЪ рдкрд░ рд╕реНрдлрд┐рдВрдХреНрд╕ рдХреЗ рдХрд╛рдо рдХрд╛ рдЖрдирдВрдж рд▓реЗрдирд╛ рдерд╛ред рд╡реИрд╕реЗ, рд╕рднреА рдПрдХ рд╣реА DIY рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рд░реЗрд▓ рдХреЗ рд▓рд┐рдПред

Source: https://habr.com/ru/post/In157857/


All Articles