井原(@ihara2525)です。
(めちゃ小ネタです)
CircleCI上でelasticsearch-extensionsを使ってテストを動かすのように引き続きテストを行っているのですが、elasticsearch-railsが0.1.8になった頃?から、テストは通るものの以下のようなエラーが出るようになっていました。
... Starting 1 Elasticsearch nodes...log4j:ERROR setFile(null,true) call failed. java.io.FileNotFoundException: /var/log/elasticsearch/elasticsearch-test-box500.log (Permission denied) ... java.io.FileNotFoundException: /var/log/elasticsearch/elasticsearch-test-box500_index_indexing_slowlog.log (Permission denied) ... java.io.FileNotFoundException: /var/log/elasticsearch/elasticsearch-test-box500_index_search_slowlog.log (Permission denied) ...
気持ちは悪いしログも書かれていない、ということで修正しようと試行錯誤してみました。
どうもインスタンスが立ち上がった時点で以下のディレクトリができている模様。
ubuntu@box844:~$ ls -lF /var/log drwxr-xr-x 1 elasticsearch elasticsearch 190 Oct 16 05:52 elasticsearch/
多分これがelasticsearchグループ/ユーザ、755なので、テストを動かしているubuntuユーザが書き込めず上記のエラーになっているぽいです。
というわけで、circle.ymlに以下を追加、/var/log/elasticsearch
ディレクトリがある場合は777にしてあげます。
dependencies: pre: - > if [ -d /var/log/elasticsearch ] ; then sudo chmod 777 /var/log/elasticsearch fi
これで無事ログが吐かれるようになりました!
ubuntu@box844:~$ ls -lF /var/log/elasticsearch -rw-r--r-- 1 elasticsearch elasticsearch 0 Oct 16 05:52 elasticsearch_index_indexing_slowlog.log -rw-r--r-- 1 elasticsearch elasticsearch 0 Oct 16 05:52 elasticsearch_index_search_slowlog.log -rw-r--r-- 1 elasticsearch elasticsearch 215 Oct 16 05:52 elasticsearch.log -rw-rw-r-- 1 ubuntu ubuntu 0 Oct 28 10:41 elasticsearch-test-box844_index_indexing_slowlog.log -rw-rw-r-- 1 ubuntu ubuntu 0 Oct 28 10:41 elasticsearch-test-box844_index_search_slowlog.log -rw-rw-r-- 1 ubuntu ubuntu 83443 Oct 28 10:41 elasticsearch-test-box844.log
といってもこのログを参照することがほぼないのですが(泣)、気持ち悪さは解消しました!