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: yes2。必要なパッケージのインストール
次に、プレイブックに必要ないくつかの一般的なパッケージをインストールしましょう。 wgetパッケージは、一部のファイルのダウンロードに使用されます。
- name: Install required packages
  dnf:
    name:
      - vim
      - wget
    state: present3。 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: no4。 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: yes6。ホストファイルの作成
 Ansibleは、一部のインベントリに対してタスクを実行します。サーバーインベントリはhosts.yamlとして追加されます サーバーへの到達方法を定義するファイル。これは私のhostsファイルです:
all:
  hosts:
    elastsrv:
      ansible_ssh_host: 10.2.11.10
      ansible_ssh_user: ubuntu7。プレイブック全体
 これが全体のプレイブックです。 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: yes8。 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サーバーにアクセスできます。