#ruby-on-rails #ruby #elasticsearch #elasticsearch-ruby
#ruby-on-rails #ruby #elasticsearch #elasticsearch-ruby
Вопрос:
Я использую elasticsearch-ruby gem в своем API-приложении, работающем на Ruby on Rails 6. В среде разработки все работает нормально, но для тестирования я хотел создать тестовый кластер, используя elasticsearch-extensions gem. При запуске rspec и попытке запустить сервер я получаю следующую ошибку. Я использую Ubuntu 18.04.
Starting 2 Elasticsearch nodes../usr/share/elasticsearch/bin/elasticsearch-env: line 81: /etc/default/elasticsearch: Permission denied
/usr/share/elasticsearch/bin/elasticsearch-env: line 81: /etc/default/elasticsearch: Permission denied
Ответ №1:
Какая версия Elasticsearch?
Как был установлен Elasticsearch?
Вывод из ls -l /etc/default/elasticsearch
?
Это должно решить вашу проблему, если настройки владения неверны:
sudo chown -R elasticsearch:elasticsearch /etc/default/elasticsearch
За https://discuss.elastic.co/t/permission-denied-starting-elasticsearch-7-0/179336
Комментарии:
1. Вывод приведенной выше команды выглядит следующим образом. Я могу запустить сервер нормально, но когда я запускаю rspec и пытаюсь запустить новый кластер на новом порту 4250, он выдает указанную выше ошибку.
-rw-rw---- 1 elasticsearch elasticsearch 1673 Oct 16 16:13 /etc/default/elasticsearch
2. Можете ли вы попробовать экспортировать
DEBUG=true
в свою среду, а затем повторно запустить и опубликовать результат здесь? Он должен печатать больше информации.
Ответ №2:
Установите переменную среды TEST_CLUSTER_COMMAND
следующим образом:
TEST_CLUSTER_COMMAND=/usr/share/elasticsearch/bin/elasticsearch
(предполагая, что это путь в вашем случае)
В моем случае это происходило из-за того, что я настроил TEST_CLUSTER_COMMAND
быть /usr/share/elasticsearch
, пропуская /bin/elasticsearch