Elasticsearch ist eine verteilte Such- und Analyse-Engine, die auf Apache Lucene basiert. Es bietet eine verteilte, mandantenfähige Volltextsuchmaschine mit HTTP-Webinterface und schemafreien JSON-Dokumenten. Elasticsearch hat sich schnell zur beliebtesten Suchmaschine entwickelt und wird häufig für Protokollanalysen, Volltextsuche, Sicherheitsinformationen, Geschäftsanalysen und Anwendungsfälle für operative Informationen verwendet.
Ansible ist ein Open-Source-Softwarebereitstellungs-, Konfigurationsverwaltungs- und Anwendungsbereitstellungstool, das eine Infrastruktur als Code ermöglicht. Es läuft auf vielen Unix-ähnlichen Systemen und kann sowohl Unix-ähnliche Systeme als auch Microsoft Windows konfigurieren.
Verwandte Inhalte
- So installieren und konfigurieren Sie Elasticsearch unter Ubuntu 20.04
- So installieren und konfigurieren Sie Elasticsearch unter Debian 11
Voraussetzungen
Um mitzumachen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein aktualisierter Ubuntu 20.04-Server mit mindestens 2 GB RAM und 2 Kernen
- Root-Zugriff auf den Server oder Benutzer mit sudo-Zugriff
- Zugang zum Internet vom Server
- Ansible auf dem lokalen System installiert
Inhaltsverzeichnis
- Sicherstellen, dass der Server auf dem neuesten Stand ist
- Installation einiger für die Einrichtung notwendiger Pakete
- Importieren Sie den Elasticsearch-PGP-Schlüssel
- Installieren Sie Elasticsearch aus dem APT-Repository
- Handler einrichten
- Hostdatei erstellen
- Das ganze Playbook
- Ausführen des Ansible-Playbooks
1. Sicherstellen, dass der Server auf dem neuesten Stand ist
Bevor Sie fortfahren, stellen Sie mit diesen Aufgaben sicher, dass der Server auf dem neuesten Stand ist. Zuerst aktualisieren wir die Repos, dann aktualisieren wir alle Pakete.
- 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. Notwendige Pakete installieren
Lassen Sie uns als Nächstes einige gängige Pakete installieren, die wir in unserem Playbook benötigen. Das wget-Paket wird verwendet, um einige Dateien herunterzuladen.
- name: Install required packages
dnf:
name:
- vim
- wget
state: present
3. Importieren Sie den Elasticsearch-PGP-Schlüssel
Elasticsearch signiert alle seine Pakete mit dem Elasticsearch Signing Key. Laden Sie den öffentlichen Signaturschlüssel mit dieser Rolle herunter und installieren Sie ihn:
- name: Import the Elasticsearch PGP Key
shell: |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
args:
warn: no
4. Installieren Sie Elasticsearch aus dem APT-Repository
Wir müssen eine Repository-Definitionsdatei erstellen, da Elasticsearch standardmäßig nicht verfügbar ist. Wir können dann die elastische Suche installieren, nachdem wir den Apt-Cache aktualisiert haben.
- 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
Oben teilen wir Handlern auch mit, Elasticsearch zu starten und Elasticsearch zu aktivieren.
5. Handler einrichten
Handler sind genau wie normale Aufgaben in einem Ansible-Playbook, aber sie werden nur ausgeführt, wenn die Aufgabe eine „Notify“-Anweisung enthält . Es zeigt auch an, dass es etwas geändert hat.
Lassen Sie uns Handler für unsere Elasticsearch-Installation einrichten und einrichten:
handlers:
- name: Start Elasticsearch
systemd:
name: elasticsearch
state: started
- name: Enable Elasticsearch
systemd:
name: elasticsearch
enabled: yes
6. Erstellen der Hosts-Datei
Ansible führt die Aufgaben anhand eines Inventars aus. Das Serverinventar wird als hosts.yaml
hinzugefügt Datei, die definiert, wie die Server erreicht werden. Dies ist meine Hosts-Datei:
all:
hosts:
elastsrv:
ansible_ssh_host: 10.2.11.10
ansible_ssh_user: ubuntu
7. Das ganze Playbook
Das ist das ganze Playbook. Speichern Sie es als 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. Ansible Playbook ausführen
Um das Ansible-Playbook auszuführen, muss Ansible lokal installiert sein. Sie können Ansible mit dem OS-Paketmanager installieren oder wenn Sie Python Pip haben, können Sie es verwenden:
sudo pip install ansible
Außerdem benötigen Sie ssh-Zugriff auf den Server. Stellen Sie sicher, dass Sie die Verbindung zum Server eingerichtet haben. Ich verwende die SSH-Schlüsselauthentifizierung und ssh funktioniert für mich mit diesem Befehl:
ssh [email protected]
Jetzt können Sie das Playbook mit diesem Befehl ausführen:
ansible-playbook -i hosts.yaml elasticsearch.yaml -vv
Sobald die Ausführung des Playbooks abgeschlossen ist, können Sie auf den auf dem Server installierten Elasticsearch-Server zugreifen.