7系とかドヤ顔で書いてるけど7系以外で確認してません。フフ。
前提
Amazon linux 2
Elasticsearch 7.0.0
openjdk 1.8.0
何があったの
開発環境で元気に動いてるES設定の99%を本番環境に持ってきて、生まれたてのEC2で起動しようとしたら
master not discovered yet, this node has not previously joined a bootstrapped (v7+) cluster, and [cluster.initial_master_nodes] is empty on this node: have discovered [];
こんなんが出て起動できず。
なお残りの1%はリージョンとかの設定でございます。
で?
cluster.initial_master_nodes
設定すりゃいいだけじゃねえの?って思ったけど、
開発環境からもってきた設定ファイル elasticsearch.yml
だと cluster.initial_master_nodes
の設定はコメントアウトされている。でも開発環境のESはバリバリ動いてるし、restartしてもstop/startしてもなんの問題もなかった。
結論
cluster.initial_master_nodes
を設定して正常起動見届けた後にstopしてコメントアウトして起動すると正常に起動します。
masterの情報をキャッシュしてるのかな?
EC2をstop/startして試しても起動したので、ファイルとかに持ってんだろうか…?
「エラーメッセージちゃんと読め」って話なんですけどね。
ちゃんと動いてる設定ファイル持ってきたのになんでよ!!ってなったので、自分と同じハマり方をする人を減らせればと思い…