概要
先日、5.5.0のリリースに先立って「Elastic Stack 5.5新機能紹介とAMA」というWebinarを拝聴しておりまして、
そこでWindowsでMSIインストーラが出るよ、という紹介がありました。
Elastic Stack 5.5.0リリースで、このように記述されています。
Windows!Elasticsearch!Elasticsearch用のWindows MSIインストーラーが登場!GUIとGUIなしのインストールをサポート
これの内容を試してみます。
準備
まずは、MSIインストーラを入手しましょう。
https://www.elastic.co/jp/downloads/elasticsearch
にいき、MSIを選択します。およそ37MBのファイルになります。
言わずもがな、Javaをインストールしておき、JAVA_HOMEの設定を済ませておきます。
見るドキュメント
公式のインストーラの説明は、ここにあります。詳細な手順やデフォルト値の確認はこちらへ。
https://www.elastic.co/guide/en/elasticsearch/reference/current/windows.html
GUI編
msiファイルをダブルクリックし、インストーラを起動しましょう。
Locationsの設定
ここでは、どこにインストールするかを設定します。
デフォルトでいいならば、画面下部のNEXTボタンを押下して次に進みます。
(NEXTでなくても、画面上部のメニュー名のようなところを押すことで、画面遷移することもできます)
設定内容 | default value |
---|---|
プログラム本体 | C:\Program Files\Elastic\Elasticsearch |
データフォルダ | C:\ProgramData\Elastic\Elasticsearch\data |
コンフィグフォルダ | C:\ProgramData\Elastic\Elasticsearch\config |
ログフォルダ | C:\ProgramData\Elastic\Elasticsearch\logs |
Service
ここでは、サービスとしてインストールするか、その場合はアカウントの情報、自動起動するか、インストール後に起動するかを設定します。
設定を終えたら、画面下部のNEXTを押下します。
Configuration
ここでは、クラスタ名(デフォルトではelasticsearch)、ノード名(デフォルトではホスト名)、ロール、メモリ、ネットワーク関連の設定を行います。
設定を終えたら、画面下部のNEXTを押下します。
Plugins
ここでは、インストールするプラグインを選択します。
デフォルトでは、何も設定されていないので、必要なものを見繕って選択しましょう。Japanese(kuromoji) Analysisとか。
設定をすべて終えたら「INSTALL]ボタンを押下すると、インストールが開始されます。
インストール実行
選択したプラグインは、ダウンロードされてインストールされます。
貧弱なネットワーク回線の会社にお勤めの方(私)は、ここで(しばらく|はげしく)待ちます。
インストールが完了すると、こんな画面に。おめでとうございます。
CUI編
みんな大好きCUIでのサイレントインストールです。
サイレントインストールも、もちろんマニュアルに細かく書いてあります。
https://www.elastic.co/guide/en/elasticsearch/reference/current/windows.html
それをそのままやっても、あまり芸がないので、
今回は、まっさらなWindowsサーバをたてていきなりelasticsearchをインストールするpowershellにしてみた。
# Chocoの導入
Get-PackageProvider chocolatey -Force
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.208 -Force
# JDKのインストール
Find-Package jdk8 | Install-Package -Force
# 環境変数の設定 ↓ コメントアウト外してください
# [Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk1.8.0_131", [EnvironmentVariableTarget]::User)
# インストーラの取得
New-Item c:\build -itemType Directory -Force
Invoke-WebRequest `
-Uri https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.msi `
-OutFile C:\build\elasticsearch-5.5.0.msi
# msi実行の引数を指定
$argList = [string[]](
"/i",
"c:\build\elasticsearch-5.5.0.msi",
"/qn",
"-l install.log",
'INSTALLDIR="C:\es"',
'DATADIRECTORY="c:\es\data"',
'CONFIGDIRECTORY="c:\es\config"',
'LOGSDIRECTORY="c:\es\logs"',
'PLUGINS="x-pack,analysis-kuromoji,ingest-attachment"'
)
# msiexecでサイレントインストールの実行
Start-Process -FilePath msiexec.exe -ArgumentList $argList -Wait
注意点1
JAVA_HOME環境変数を指定しています。elasticsearch-plugin.bat install *****
とやると分かりますが、
JAVA_HOMEが設定されていないと、バッチが起動しません。
インストーラでPLUGINSを指定していて、インストーラは正常終了するが、何もプラグインが入ってない、ということになりえます。
(なってました、私が)
注意点2
これも自分で手で打つと分かるのですが、プラグインの文字列を間違ってはいけません。
注意点1と同じで、インストーラーは終わるが、プラグインがない状態になります。
特に大文字小文字、ハイフンなのかアンダーバーなのか、小さなミスに気をつけましょう。
正しい文字列は、プラグインのページを見ると書いてあるので、そこを確認するのが良いでしょう。
例
https://www.elastic.co/guide/en/elasticsearch/plugins/current/ingest-attachment.html
sudo bin/elasticsearch-plugin install ingest-attachment
ちら裏
WindowsServerコンテナでmsiを使ってelasticsearchのイメージでもビルドしてみるか、と思ったのですが、
よくよく考えると、その用途だとzipで十分な気がして方向転換した結果がこの記事の内容。