Elasticsearchは、ApacheLucene上に構築された分散検索および分析エンジンです。分散型のマルチテナント対応の全文検索エンジンに、HTTPWebインターフェイスとスキーマフリーのJSONドキュメントを提供します。 Elasticsearchはすぐに最も人気のある検索エンジンになり、ログ分析、全文検索、セキュリティインテリジェンス、ビジネス分析、運用インテリジェンスのユースケースで一般的に使用されています。
Ansibleは、オープンソースのソフトウェアプロビジョニング、構成管理、およびアプリケーション展開ツールであり、インフラストラクチャをコードとして有効にします。多くのUnixライクなシステムで動作し、UnixライクなシステムとMicrosoftWindowsの両方を構成できます。
関連コンテンツ
- Ubuntu20.04にElasticsearchをインストールして設定する方法
- Debian11にElasticsearchをインストールして設定する方法
前提条件
フォローするには、次のことを確認してください。
- 2GB以上のRAMと2つのコアを備えた更新されたUbuntu20.04サーバー
- サーバーまたはsudoアクセス権を持つユーザーへのrootアクセス
- サーバーからインターネットへのアクセス
- ローカルシステムにインストールされたAnsible
目次
- サーバーが最新であることを確認する
- セットアップに必要ないくつかのパッケージをインストールする
- ElasticsearchPGPキーをインポートする
- APTリポジトリからElasticsearchをインストールする
- セットアップハンドラー
- hostsファイルを作成する
- プレイブック全体
- Ansibleプレイブックの実行
1。サーバーが最新であることを確認する
続行する前に、これらのタスクを使用してサーバーが最新であることを確認してください。最初にリポジトリを更新してから、すべてのパッケージをアップグレードします。
- name: Update apt repo and cache on Ubuntu box
apt:
update_cache: yes
force_apt_get: yes
cache_valid_time: 3600
- name: Upgrade all packages on servers
apt:
upgrade: dist
force_apt_get: yes
2。必要なパッケージのインストール
次に、プレイブックに必要ないくつかの一般的なパッケージをインストールしましょう。 wgetパッケージは、一部のファイルのダウンロードに使用されます。
- name: Install required packages
dnf:
name:
- vim
- wget
state: present
3。 ElasticsearchPGPキーをインポートする
Elasticsearchは、Elasticsearch署名キーを使用してすべてのパッケージに署名します。この役割を使用して公開署名キーをダウンロードしてインストールします:
- name: Import the Elasticsearch PGP Key
shell: |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
args:
warn: no
4。 APTリポジトリからElasticsearchをインストールします
Elasticsearchはデフォルトでは使用できないため、リポジトリ定義ファイルを作成する必要があります。 aptキャッシュを更新した後、ElasticSearchをインストールできます。
- name: Add repository defiition
copy:
dest: /etc/apt/sources.list.d/elastic-7.x.list
content: |
deb https://artifacts.elastic.co/packages/7.x/apt stable main
- name: Install the Elasticsearch package
apt:
name: elasticsearch
state: present
update_cache: yes
notify:
- Start Elasticsearch
- Enable Elasticsearch
上記では、ハンドラーに Elasticsearchを開始し、Elasticsearchを有効にするように通知しています。
5。ハンドラーを設定する
ハンドラーはAnsibleプレイブックの通常のタスクと同じですが、タスクに「通知」ディレクティブが含まれている場合にのみ実行されます 。また、何かが変わったことも示しています。
Elasticsearchのインストール用のハンドラーを設定して設定しましょう:
handlers:
- name: Start Elasticsearch
systemd:
name: elasticsearch
state: started
- name: Enable Elasticsearch
systemd:
name: elasticsearch
enabled: yes
6。ホストファイルの作成
Ansibleは、一部のインベントリに対してタスクを実行します。サーバーインベントリはhosts.yaml
として追加されます サーバーへの到達方法を定義するファイル。これは私のhostsファイルです:
all:
hosts:
elastsrv:
ansible_ssh_host: 10.2.11.10
ansible_ssh_user: ubuntu
7。プレイブック全体
これが全体のプレイブックです。 elasticsearch.yaml
として保存します
---
- name: Install Elasticsearch on Ubuntu
hosts: elastsrv
become: yes
gather_facts: False
tasks:
- name: Update apt repo and cache on all Ubuntu box
apt:
update_cache: yes
force_apt_get: yes
cache_valid_time: 3600
- name: Upgrade all packages on servers
apt:
upgrade: dist
force_apt_get: yes
- name: Set hostname
hostname:
name: elastsrv.citizix.com
- name: Install Common packages
apt:
name:
- vim
- wget
state: latest
- name: Import the Elasticsearch PGP Key
shell: |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
args:
warn: no
- name: Add repository defiition
copy:
dest: /etc/apt/sources.list.d/elastic-7.x.list
content: |
deb https://artifacts.elastic.co/packages/7.x/apt stable main
- name: Install the Elasticsearch package
apt:
name: elasticsearch
state: present
update_cache: yes
notify:
- Start Elasticsearch
- Enable Elasticsearch
handlers:
- name: Start Elasticsearch
systemd:
name: elasticsearch
state: started
- name: Enable Elasticsearch
systemd:
name: elasticsearch
enabled: yes
8。 AnsiblePlaybookの実行
ansibleプレイブックを実行するには、ansibleをローカルにインストールする必要があります。 OSパッケージマネージャーを使用してansibleをインストールするか、python pipを使用している場合はそれを使用できます:
sudo pip install ansible
また、サーバーへのsshアクセスが必要です。サーバーへの接続を設定していることを確認してください。私はsshキー認証を使用しており、sshは次のコマンドを使用して機能します:
ssh [email protected]
これで、次のコマンドを使用してプレイブックを実行できます:
ansible-playbook -i hosts.yaml elasticsearch.yaml -vv
プレイブックの実行が完了すると、サーバーにインストールされているElasticsearchサーバーにアクセスできます。