Отказано в разрешении при запуске кластера elasticserach в тестовых примерах rspec

#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