🐈

DebianにElasticsearchをインストールする方法

2021/02/18に公開

目的

初めにお伝えしておくと、Elasticserchはパッケージを解凍したらそのまま動く優秀なツールです。ただ、日本の情報サイトにDebianでaptを利用したものが少ないように感じたので記事に残します。

開発環境

  • Debian 8
  • Elasticsearch 7.11
    (VirtualBox上で構築)

ユーザの作成

私はDebianでのユーザ作成も戸惑いました。。。
ここではansibleというユーザを作成します。
(ansibleでのインストールに挑戦中だったので個人都合)

# ルートへ
(user_name)@elastic01:~$ su -
パスワード:

# ホームディレクトリを作成しないと後でエラーが出るので手動で作成
root@elastic01:~# mkdir /home/ansible
root@elastic01:~# useradd ansible
root@elastic01:~# passwd ansible
新しいパスワード:(作成ユーザのパスワードを入力)
新しいパスワードを再入力してください:(作成ユーザのパスワードを再入力)
passwd: パスワードは正しく更新されました

# パスワードファイルのログイン・シェルをbashに変更
root@elastic01:~# cat /etc/pssasswd
(省略)
ansible:x:1001:1001::/home/ansible:/bin/sh
# 最後のshをbashに更新 shは使いにくい
root@elastic01:~# vi /etc/passwd
(省略)
ansible:x:1001:1001::/home/ansible:/bin/bash

修正前:ansible:x:1001:1001::/home/ansible:/bin/sh
修正後:ansible:x:1001:1001::/home/ansible:/bin/bash

sudoを使うための設定

# sudoの権限を設定
root@elastic01:~# visudo

(# User privilege specification)の下にansibleユーザ情報を追加
root    ALL=(ALL:ALL) ALL
ansible ALL=(ALL:ALL) ALL ← 追加

root@elastic01:~# exit
ログアウト

仕込み完了。

Elasticsearchをaptでインストール

参考
https://www.elastic.co/guide/en/elasticsearch/reference/7.11/deb.html#deb-repo

# ユーザをansibleへ
(user_name)@elastic01:~$ su - ansible
パスワード:

# 公開署名キーをダウンロードしてインストール
ansible@elastic01:~$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

あなたはシステム管理者から通常の講習を受けたはずです。
これは通常、以下の3点に要約されます:

    #1) 他人のプライバシーを尊重すること。
    #2) タイプする前に考えること。
    #3) 大いなる力には大いなる責任が伴うこと。

[sudo] ansible のパスワード:(パスワードを入力)
OK

# Debianにパッケージをインストール
ansible@elastic01:~$ sudo apt-get install apt-transport-https
パッケージリストを読み込んでいます... 0%パッケージリストを読み込んでいます... 100%パッケージリストを読み込んでいます... 完了
(省略)
apt-transport-https (1.8.2.2) を展開しています...
apt-transport-https (1.8.2.2) を設定しています ...

# リポジトリ定義を保存
ansible@elastic01:~$ echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.11.list
deb https://artifacts.elastic.co/packages/7.x/apt stable main

# インストールを実行
ansible@elastic01:~$ sudo apt-get update && sudo apt-get install elasticsearch
(省略)
Creating elasticsearch group... OK
Creating elasticsearch user... OK
elasticsearch (7.11.1) を展開しています...
elasticsearch (7.11.1) を設定しています ...
Created elasticsearch keystore in /etc/elasticsearch/elasticsearch.keystore
systemd (241-7~deb10u6) のトリガを処理しています ...

Elasticsearchを起動

# 念のため動いていないことを確認
ansible@elastic01:~$ sudo systemctl status elasticsearch.service 
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: https://www.elastic.co
     
# サービスの起動
ansible@elastic01:~$ sudo systemctl start elasticsearch.service
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2021-02-18 19:34:23 JST; 26s ago
     Docs: https://www.elastic.co
 Main PID: 2366 (java)
    Tasks: 60 (limit: 2347)
   Memory: 1.2G
   CGroup: /system.slice/elasticsearch.service
           tq2366 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPr
           mq2514 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

 2月 18 19:33:45 elastic01 systemd[1]: Starting Elasticsearch...
 2月 18 19:34:23 elastic01 systemd[1]: Started Elasticsearch.

エラーがなければ正常にインストールされ起動しています。

Elasticsearchの動作確認

# 値が戻ることを確認
ansible@elastic01:~$ curl http://localhost:9200
{
  "name" : "elastic01",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "E7oahcTISVeoZnx7M4ZF2A",
  "version" : {
    "number" : "7.11.1",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "ff17057114c2199c9c1bbecc727003a907c0db7a",
    "build_date" : "2021-02-15T13:44:09.394032Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Discussion