elastic.elasticsearch
ARCHIVIERT
Dieses Projekt wird nicht mehr gepflegt.
Sie sind herzlich eingeladen, es weiter zu nutzen und anzupassen, um es für Ihre eigenen Bedürfnisse zu verwenden, einschließlich mit Elasticsearch 8.x.
Für alternative Einstiegsmöglichkeiten könnten Sie eine dieser Optionen ausprobieren:
- Starten Sie eine kostenlose Testversion auf Elastic Cloud, unserem gehosteten Dienst.
- Werfen Sie einen Blick auf Elastic Cloud auf Kubernetes (ECK) zum Starten des Stacks über Kubernetes.
- Lesen Sie unseren Leitfaden zum Ausführen des Elastic Stacks auf Docker.
- Sehen Sie sich den Elastic Stack Terraform-Anbieter an.
ansible-elasticsearch
DIESE ROLLE IST FÜR 7.x & 6.x, sollte aber auch mit 8.x funktionieren (siehe Hinweis).
Ansible-Rolle für Elasticsearch 7.x/6.x - Tests wurden auf den folgenden Plattformen durchgeführt:
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- Debian 8
- Debian 9
- Debian 10
- CentOS 7
- Amazon Linux 2
WESENTLICHE ÄNDERUNGEN
Hinweis zur Multi-Instance-Unterstützung
- Wenn Sie nur eine Instanz verwenden, aber von einer älteren Version von ansible-elasticsearch aktualisieren möchten, folgen Sie der Upgrade-Anleitung.
- Wenn Sie mehr als eine Instanz von Elasticsearch auf demselben Host installieren (mit verschiedenen Ports, Verzeichnissen und Konfigurationsdateien), aktualisieren Sie nicht auf ansible-elasticsearch >= 7.1.1, befolgen Sie stattdessen diese Umgehungslösung.
- Für Multi-Instance-Anwendungsfälle empfehlen wir jetzt Docker-Container mit unseren offiziellen Bildern (https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html).
Entfernen der MAX_THREAD-Einstellungen
Ansible-elasticsearch 7.5.2 entfernt die Option zur Anpassung der maximalen Anzahl von Threads, die der Prozess starten kann. Wir haben entdeckt, dass diese Option seit der Entfernung der Multi-Instance-Unterstützung in ansible-elasticsearch 7.1.1 nicht mehr funktionierte. Diese Option wird in einer folgenden Version wieder hinzugefügt, falls sie in Bezug auf die neuesten Entwicklungen von Elasticsearch weiterhin relevant ist.
Änderungen bei den Konfigurationsdateien
Ansible-elasticsearch 7.5.2 aktualisiert die Konfigurationsdateien, die von dieser Rolle bereitgestellt werden. Diese enthielten einige in 6.x und 7.x veraltete Optionen:
/etc/default/elasticsearch
|/etc/sysconfig/elasticsearch
: die neue Vorlage spiegelt die Konfigurationsdatei wider, die von Elasticsearch >= 6.x bereitgestellt wird, die Parameter, die wir entfernt haben, wurden in 6.x und 7.x nicht mehr verwendet./etc/elasticsearch/jvm.options
: die neue Vorlage spiegelt die Konfigurationsdateien wider, die von Elasticsearch >= 6.x bereitgestellt werden./etc/elasticsearch/log4j2.properties
:- Wir haben die Vorlage
log4j2.properties.j2
aus dieser Ansible-Rolle entfernt, da es sich um eine statische Datei handelte, die keine speziellen Anpassungen an einige Ansible-Variablen brachte. - Die Implementierung dieser Ansible-Rolle auf neuen Servern erhält die Standard
log4j2.properties
, die von Elasticsearch bereitgestellt werden, ohne Überschreibung. - WARNUNG: Für Upgrade-Szenarien, bei denen diese Datei bereits von früheren Versionen von ansible-elasticsearch verwaltet wurde, wird diese Datei nicht mehr verwaltet und standardmäßig nicht aktualisiert. Falls Sie sie auf die Version 7.5 aktualisieren möchten, können Sie sie hier abrufen und diese Datei mit der Ansible-Variable
es_config_log4j2
verwenden (siehe unten).
- Wir haben die Vorlage
Entfernen der OSS-Distribution für Versionen >= 7.11.0
Ab Version Elasticsearch 7.11.0 werden keine OSS-Distributionen mehr bereitgestellt, die auf der kürzlichen Änderung der Elasticsearch-Lizenz basieren.
Diese Ansible-Rolle wird fehlschlagen, wenn oss_version
auf true
gesetzt ist und es_version
größer ist als 7.11.0
.
Siehe den Blogbeitrag Doubling down on open, Part II für weitere Details.
So überschreiben Sie die von ansible-elasticsearch bereitgestellten Konfigurationsdateien?
Sie können jetzt die Konfigurationsdateien mit Ihren eigenen Versionen überschreiben, indem Sie die folgenden Ansible-Variablen verwenden:
es_config_default: "elasticsearch.j2"
: ersetzen Sieelasticsearch.j2
durch Ihre eigene Vorlage, um eine benutzerdefinierte/etc/default/elasticsearch
|/etc/sysconfig/elasticsearch
Konfigurationsdatei zu verwenden.es_config_jvm: "jvm.options.j2"
: ersetzen Siejvm.options.j2
durch Ihre eigene Vorlage, um eine benutzerdefinierte/etc/elasticsearch/jvm.options
Konfigurationsdatei zu verwenden.es_config_log4j2: ""
: setzen Sie diese Variable auf den Pfad zu Ihrer eigenen Vorlage, um eine benutzerdefinierte/etc/elasticsearch/log4j2.properties
Konfigurationsdatei zu verwenden.
Abhängigkeit
Diese Rolle verwendet den json_query Filter, der jmespath auf der lokalen Maschine erfordert.
Verwendung
Erstellen Sie Ihr Ansible-Playbook mit Ihren eigenen Aufgaben und fügen Sie die Rolle elasticsearch hinzu. Dieses Repository muss im Kontext des Playbooks zugänglich sein.
ansible-galaxy install elastic.elasticsearch,v7.17.0
Erstellen Sie dann Ihre Playbook-YAML-Datei und fügen Sie die Rolle elasticsearch hinzu. Die Anwendung der elasticsearch-Rolle führt zur Installation eines Knotens auf einem Host.
Die einfachste Konfiguration besteht daher aus:
- name: Einfaches Beispiel
hosts: localhost
roles:
- role: elastic.elasticsearch
vars:
es_version: 7.17.0
Oben wird Elasticsearch 7.17.0 in einem einzelnen Knoten 'node1' auf den Hosts 'localhost' installiert.
Hinweis:
Die Standardversion von Elasticsearch ist in es_version
beschrieben. Sie können diese Variable in Ihrem Playbook überschreiben, um eine andere Version zu installieren.
Während wir diese Rolle nur mit einer 7.x und einer 6.x Version (jeweils 7.17.0 und 6.8.23 zum Zeitpunkt des Schreibens) testen, sollte diese Rolle auch mit anderen Versionen in den meisten Fällen funktionieren.
Diese Rolle verwendet auch Ansible-Tags. Führen Sie Ihr Playbook mit dem --list-tasks
-Flag aus, um weitere Informationen zu erhalten.
Tests
Dieses Playbook verwendet Kitchen für CI und lokale Tests.
Anforderungen
- Ruby
- Bundler
- Docker
- Make
Ausführen der Tests
- Stellen Sie sicher, dass Sie dieses Repository auf
elasticsearch
und nicht aufansible-elasticsearch
ausgecheckt haben. - Wenn Sie keine Gold- oder Platinlizenz zum Testen haben, können Sie die Testversionen der
xpack-upgrade
-Suiten ausführen, indem Sie-trial
an die VariablePATTERN
anhängen. - Möglicherweise müssen Sie
VERSION=7.x
explizit angeben, wenn einige Suiten fehlschlagen.
Installieren Sie die Ruby-Abhängigkeiten mit Bundler
make setup
Wenn Sie X-Pack-Funktionen mit einer Lizenz testen möchten, müssen Sie zuerst die Umgebungsvariable ES_XPACK_LICENSE_FILE
exportieren.
export ES_XPACK_LICENSE_FILE="$(pwd)/license.json"
Um einen Ubuntu 16.04-Host mit X-Pack zusammenzuführen
$ make converge
Um die Tests auszuführen
$ make verify
Um alle verschiedenen Test-Suiten aufzulisten
$ make list
Die Standard-Test-Suite ist Ubuntu 16.04 mit X-Pack. Wenn Sie eine andere Suite testen möchten, können Sie dies mit der Variablen PATTERN
überschreiben.
$ make converge PATTERN=security-centos-7
PATTERN
ist ein Kitchen-Muster, das mehrere Suiten abgleichen kann. Um alle Tests für CentOS auszuführen
$ make converge PATTERN=centos-7
Die Standardversion ist 7.x. Wenn Sie 6.x testen möchten, können Sie dies mit der Variablen VERSION
überschreiben, zum Beispiel:
$ make converge VERSION=6.x PATTERN=security-centos-7
Wenn Sie mit den Tests fertig sind, können Sie alles mit
$ make destroy-all
Grundlegende Elasticsearch-Konfiguration
Alle Elasticsearch-Konfigurationsparameter werden unterstützt. Dies wird durch die Verwendung eines Konfigurationskartenparameters 'es_config' erreicht, der in die elasticsearch.yml-Datei serialisiert wird. Die Verwendung einer Karte stellt sicher, dass das Ansible-Playbook nicht aktualisiert werden muss, um neue/deprecated/plugin Konfigurationsparameter zu berücksichtigen.
Zusätzlich zur es_config-Karte werden mehrere andere Parameter für zusätzliche Funktionen, z. B. die Installation von Skripten, unterstützt. Diese finden Sie in der defaults/main.yml-Datei der Rolle.
Das folgende Beispiel veranschaulicht die Anwendung von Konfigurationsparametern auf einer Elasticsearch-Instanz.
- name: Elasticsearch mit benutzerdefinierter Konfiguration
hosts: localhost
roles:
- role: elastic.elasticsearch
vars:
es_data_dirs:
- "/opt/elasticsearch/data"
es_log_dir: "/opt/elasticsearch/logs"
es_config:
node.name: "node1"
cluster.name: "custom-cluster"
discovery.seed_hosts: "localhost:9301"
http.port: 9201
transport.port: 9301
node.data: false
node.master: true
bootstrap.memory_lock: true
es_heap_size: 1g
es_api_port: 9201
Obwohl die Rolle Elasticsearch mit den Standardkonfigurationsparametern installiert, sollte Folgendes konfiguriert werden, um sicherzustellen, dass ein Cluster erfolgreich gebildet wird:
es_config['http.port']
- der http-Port für den Knotenes_config['transport.port']
- der Transportport für den Knotenes_config['discovery.seed_hosts']
- die Unicast-Entdeckungs-Liste, im durch Kommas getrennten Format"<host>:<port>,<host>:<port>"
(typischerweise die dedizierten Masterknoten des Clusters)es_config['cluster.initial_master_nodes']
- für 7.x und höher die Liste von master-qualifizierten Knoten zur Bootstrap des Clusters, im durch Kommas getrennten Format"<node.name>:<port>,<node.name>:<port>"
(typischerweise die Knotennamen der dedizierten Masterknoten des Clusters)es_config['network.host']
- setzt sowohl network.bind_host als auch network.publish_host auf denselben Hostwert. Die Einstellung network.bind_host ermöglicht es, den Host zu steuern, an den verschiedene Netzwerkkomponenten binden.
Die Einstellung network.publish_host
ermöglicht es, den Host zu steuern, auf dem der Knoten sich innerhalb des Clusters veröffentlicht, damit andere Knoten sich mit ihm verbinden können.
Siehe https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html für weitere Details zum Standardbindeverhalten und zu den verfügbaren Optionen. Die Rolle versucht nicht, die Einstellung dieser Parameter durchzusetzen und verlangt von den Benutzern, sie angemessen anzugeben. Es wird empfohlen, Master-Knoten aufzulisten und somit nach Möglichkeit zuerst zu implementieren.
Ein komplexeres Beispiel:
- name: Elasticsearch mit benutzerdefinierter Konfiguration
hosts: localhost
roles:
- role: elastic.elasticsearch
vars:
es_data_dirs:
- "/opt/elasticsearch/data"
es_log_dir: "/opt/elasticsearch/logs"
es_config:
node.name: "node1"
cluster.name: "custom-cluster"
discovery.seed_hosts: "localhost:9301"
http.port: 9201
transport.port: 9301
node.data: false
node.master: true
bootstrap.memory_lock: true
es_heap_size: 1g
es_start_service: false
es_api_port: 9201
es_plugins:
- plugin: ingest-attachment
Wichtige Hinweise
Die Rolle verwendet es_api_host und es_api_port, um mit dem Knoten für Aktionen zu kommunizieren, die nur über http erreichbar sind, z. B. um Vorlagen zu installieren und zu überprüfen, ob der KNOTEN AKTIV IST. Diese sind standardmäßig auf "localhost" und 9200 festgelegt. Wenn der Knoten an einen anderen Host oder Port gebunden werden soll, müssen diese geändert werden.
Verwenden Sie nur es_data_dirs und es_log_dir zum Anpassen der Daten- bzw. Protokollverzeichnisse. Wenn Sie dies zusammen mit es_config['path.data']
und es_config['path.logs']
verwenden, führt dies zu einer Generierung doppelter Daten- und Protokollschlüssel in elasticsearch.yml
und somit zu einem Startfehler von Elasticsearch.
Multi-Node-Server-Installationen
Die Anwendung der elasticsearch-Rolle führt zur Installation eines Knotens auf einem Host. Das mehrfache Angeben der Rolle für einen Host führt daher zur Installation mehrerer Knoten für den Host.
Ein Beispiel für eine Bereitstellung mit drei Servern wird unten gezeigt. Der erste Server hält den Master und wird daher zuerst deklariert. Obwohl dies nicht obligatorisch ist, wird dies in jeder Konfiguration mit mehreren Knoten empfohlen. Die beiden anderen Server hosten Datenknoten.
Bitte beachten Sie, dass wir die Installation von mehr als einem Knoten auf demselben Host nicht mehr unterstützen.
- hosts: master_node
roles:
- role: elastic.elasticsearch
vars:
es_heap_size: "1g"
es_config:
cluster.name: "test-cluster"
cluster.initial_master_nodes: "elastic02"
discovery.seed_hosts: "elastic02:9300"
http.host: 0.0.0.0
http.port: 9200
node.data: false
node.master: true
transport.host: 0.0.0.0
transport.port: 9300
bootstrap.memory_lock: false
es_plugins:
- plugin: ingest-attachment
- hosts: data_node_1
roles:
- role: elastic.elasticsearch
vars:
es_data_dirs:
- "/opt/elasticsearch/data"
es_config:
cluster.name: "test-cluster"
cluster.initial_master_nodes: "elastic02"
discovery.seed_hosts: "elastic02:9300"
http.host: 0.0.0.0
http.port: 9200
node.data: true
node.master: false
transport.host: 0.0.0.0
transport.port: 9300
bootstrap.memory_lock: false
es_plugins:
- plugin: ingest-attachment
- hosts: data_node_2
roles:
- role: elastic.elasticsearch
vars:
es_config:
cluster.name: "test-cluster"
discovery.seed_hosts: "elastic02:9300"
http.host: 0.0.0.0
http.port: 9200
node.data: true
node.master: false
transport.host: 0.0.0.0
transport.port: 9300
bootstrap.memory_lock: false
es_plugins:
- plugin: ingest-attachment
Parameter können zusätzlich den Hosts zugewiesen werden, wobei die Inventardatei bei Bedarf verwendet wird.
Stellen Sie sicher, dass Ihre Hosts in Ihrer inventory
-Datei mit den entsprechenden Werten für ansible_ssh_host
, ansible_ssh_user
und ansible_ssh_private_key_file
definiert sind.
Dann führen Sie es aus:
ansible-playbook -i hosts ./your-playbook.yml
Installation von X-Pack-Funktionen
es_role_mapping
Rollen zugewiesene Mapping-Datei, die als YAML deklariert ist, wie hier beschrieben. hier
es_role_mapping:
power_user:
- "cn=admins,dc=example,dc=com"
user:
- "cn=users,dc=example,dc=com"
- "cn=admins,dc=example,dc=com"
es_users
- Benutzer können hier als YAML deklariert werden. Zwei Unterkey 'native' und 'file' bestimmen das Realm, unter dem der Benutzer erstellt wird. Unter jedem dieser Schlüssel sollten Benutzer als YAML-Einträge deklariert werden, z. B.
es_users:
native:
kibana4_server:
password: changeMe
roles:
- kibana4_server
file:
es_admin:
password: changeMe
roles:
- admin
testUser:
password: changeMeAlso!
roles:
- power_user
- user
es_roles
- Elasticsearch-Rollen können hier als YAML deklariert werden. Zwei Unterkeys 'native' und 'file' bestimmen, wie die Rolle erstellt wird, d.h. entweder über eine Datei oder einen HTTP(nativ) Aufruf. Unter jedem Schlüssel listen Sie die Rollen mit den entsprechenden Berechtigungen mithilfe des in hier beschriebenen Dateiformats auf, z. B.
es_roles:
file:
admin:
cluster:
- all
indices:
- names: '*'
privileges:
- all
power_user:
cluster:
- monitor
indices:
- names: '*'
privileges:
- all
user:
indices:
- names: '*'
privileges:
- read
kibana4_server:
cluster:
- monitor
indices:
- names: '.kibana'
privileges:
- all
native:
logstash:
cluster:
- manage_index_templates
indices:
- names: 'logstash-*'
privileges:
- write
- delete
- create_index
es_xpack_license
- X-Pack-Lizenz. Die Lizenz ist ein JSON-Blob. Setzen Sie die Variable direkt (möglicherweise geschützt durch Ansible-Vault) oder aus einer Datei im Ansible-Projekt auf dem Steuerungsrechner über einen Lookup:
es_xpack_license: "{{ lookup('file', playbook_dir + '/files/' + es_cluster_name + '/license.json') }}"
Wenn Sie keine Lizenz haben, können Sie die 30-tägige Testversion aktivieren, indem Sie es_xpack_trial
auf true
setzen.
X-Pack-Konfigurationsparameter können zur elasticsearch.yml-Datei mit dem normalen es_config
-Parameter hinzugefügt werden.
Für ein vollständiges Beispiel siehe hier.
Wichtiger Hinweis zur Konfiguration des nativen Realms
Um native Benutzer und Rollen zu konfigurieren, ruft der Rollenaufruf die Elasticsearch API auf. Da die Sicherheit installiert ist, sind zwei Parameter erforderlich:
es_api_basic_auth_username
- Admin-Benutzernamees_api_basic_auth_password
- Admin-Passwort
Diese können entweder auf einen Benutzer gesetzt werden, der im dateibasierten Realm mit Admin-Rechten deklariert ist, oder auf den standardmäßigen "elastic"-Superbenutzer (das Standardpasswort lautet changeme).
X-Pack-Sicherheits-SSL/TLS
- Um Ihren Cluster mit SSL/TLS für HTTP und/oder Transportkommunikation zu konfigurieren, folgen Sie dem SSL/TLS-Einrichtungsverfahren.
Zusätzliche Konfiguration
Neben es_config erlauben die folgenden Parameter die Anpassung der Java- und Elasticsearch-Versionen sowie das Verhalten der Rolle. Optionen umfassen:
oss_version
Standardfalse
. Wenn Sie dies auftrue
setzen, wird die OSS-Version von Elasticsearch installiert (nur für Version <7.11.0).es_xpack_trial
Standardfalse
. Wenn Sie dies auftrue
setzen, wird die 30-tägige Testversion gestartet, sobald der Cluster startet.es_version
(z.B. "7.17.0").es_api_host
Der Hostname, der für Aktionen verwendet wird, die HTTP erfordern, z. B. zum Installieren von Vorlagen. Standardmäßig "localhost".es_api_port
Der für HTTP erforderliche Port, z. B. zum Installieren von Vorlagen. Standardmäßig 9200. ÄNDERN SIE, WENN DER HTTP-PORT NICHT 9200 ISTes_api_basic_auth_username
Der Elasticsearch-Benutzername für Verwaltungsänderungsaktionen. Wird verwendet, wenn die Sicherheit aktiviert ist. Stellen Sie sicher, dass dieser Benutzer Admin ist.es_api_basic_auth_password
Das Passwort, das mit dem Benutzer ines_api_basic_auth_username
deklariert ist.es_delete_unmanaged_file
Standardtrue
. Setzen Sie dies auf false, um dateibasiert hinzugefügte Benutzer beizubehalten, die außerhalb von Ansible hinzugefügt wurden.es_delete_unmanaged_native
Standardtrue
. Setzen Sie dies auf false, um native Realm-Benutzer zu behalten, die außerhalb von Ansible hinzugefügt wurden.es_start_service
(true (Standard) oder false)es_plugins_reinstall
(true oder false (Standard))es_plugins
ein Array von Plugin-Definitionen, z.B.:es_plugins: - plugin: ingest-attachment
es_path_repo
Legt die Whitelist für zulässige lokale Backup-Repositories fest.es_action_auto_create_index
Setzt den Wert für die automatische Indexerstellung, verwenden Sie die folgende Syntax zur Angabe von Indizes (ansonsten true/false): es_action_auto_create_index: '[".watches", ".triggered_watches", ".watcher-history-*"]'es_allow_downgrades
Nur für Entwicklungszwecke. (true oder false (Standard))es_java_install
Wenn auf true gesetzt, wird Java installiert. (false (Standard für 7.x) oder true (Standard für 6.x))update_java
Aktualisiert Java auf die neueste Version. (true oder false (Standard))es_max_map_count
maximale Anzahl von VMA (Virtuellen Speicherbereichen), die ein Prozess besitzen kann. Standardmäßig 262144.es_max_open_files
die maximale Anzahl von Dateideskriptoren, die von diesem Prozess geöffnet werden können. Standardmäßig 65536.es_debian_startup_timeout
wie lange Debian-familien SysV-Init-Skripte warten, bis der Dienst gestartet wird, in Sekunden. Standardmäßig 10 Sekunden.es_use_repository
Wenn dies auffalse
gesetzt wird, wird Ansible daran gehindert, das offizielle Elastic-Paket aus einem auf dem System konfigurierten Repository zu verwenden.es_add_repository
Wenn dies auffalse
gesetzt wird, wird Ansible daran gehindert, die offiziellen Elastic-Paket-Repositorys hinzuzufügen (wenn es_use_repository true ist), falls Sie ein bereits vorhandenes Repo verwenden möchten.es_custom_package_url
die URL zum RPM- oder DEB-Paket, das von Ansible installiert werden soll. Wenn Sie dies verwenden, müssen Sie auches_use_repository: false
setzen und sicherstellen, dasses_version
mit der Version übereinstimmt, die aus Ihrer benutzerdefinierten URL installiert wird. Beispiel:es_custom_package_url: https://downloads.example.com/elasticsearch.rpm
.
Frühere Beispiele veranschaulichen die Installation von Plugins mit es_plugins
. Für offiziell unterstützte Plugins sind keine Versions-, Quelltrennzeichen erforderlich. Das Pluginskript ermittelt die geeignete Pluginversion basierend auf der Zielversion von Elasticsearch. Bei Community-basierten Plugins sollte die vollständige URL angegeben werden. Dieser Ansatz sollte NICHT für das X-Pack-Plugin verwendet werden. Siehe X-Pack unten für Einzelheiten dazu.
Wenn Sie Monitoring oder Alerting installieren möchten, stellen Sie sicher, dass das Lizenzplugin ebenfalls angegeben ist. Die Sicherheitskonfiguration hat derzeit eine eingeschränkte Unterstützung, aber es ist geplant, weitere Unterstützung in späteren Versionen hinzuzufügen.
Um X-Pack zu konfigurieren, um E-Mails zu senden, können die folgenden Konfigurationen zur Rolle hinzugefügt werden. Wenn require_auth true ist, müssen Sie auch den Benutzer und das Passwort angeben. Wenn nicht, können diese entfernt werden:
es_mail_config:
account: <funktionsname>
profile: standard
from: <Absenderadresse>
require_auth: <true oder false>
host: <Mail-Domain>
port: <Portnummer>
user: <E-Mail-Adresse> -- optional
pass: <Passwort> -- optional
es_user
- standardmäßig Elasticsearch.es_group
- standardmäßig Elasticsearch.es_user_id
- standardmäßig undefiniert.es_group_id
- standardmäßig undefiniert.
Sowohl es_user_id
als auch es_group_id
müssen gesetzt werden, damit die Benutzer- und Gruppen-IDs gesetzt werden.
es_restart_on_change
- standardmäßig true. Wenn false, führt dies nicht zu einer neuen Startauslösung von Elasticsearch bei Änderungen.es_plugins_reinstall
- standardmäßig false. Wenn true, werden alle derzeit installierten Plugins von einem Knoten entfernt. Aufgelistete Plugins werden dann neu installiert.
Um Einträge im elasticsearch.keystore hinzuzufügen, zu aktualisieren oder zu entfernen, verwenden Sie die folgende Variable:
# state ist optional und standardmäßig vorhanden
es_keystore_entries:
- key: someKeyToAdd
value: someValue
state: present
- key: someKeyToUpdate
value: newValue
# state: present
force: Yes
- key: someKeyToDelete
state: absent
Diese Rolle wird mit Beispielvorlagen geliefert, die im Verzeichnis test/integration/files/templates-7.x zu finden sind. Die Variable es_templates_fileglob
wird mit der Ansible with_fileglob Schleife verwendet. Stellen Sie beim Setzen der Globs sicher, dass Sie einen absoluten Pfad verwenden.
Proxy
Um den Proxy global zu definieren, setzen Sie die folgenden Variablen:
es_proxy_host
- globaler Proxy-Hostes_proxy_port
- globaler Proxy-Port
Hinweise
- Die Rolle geht davon aus, dass der Benutzer/die Gruppe auf dem Server existiert. Die Elasticsearch-Pakete erstellen den standardmäßigen Elasticsearch-Benutzer. Wenn dies geändert werden muss, stellen Sie sicher, dass der Benutzer existiert.
- Das Playbook verlässt sich auf den inventory_name jedes Hosts, um sicherzustellen, dass seine Verzeichnisse einzigartig sind.
- KitchenCI wurde zum Testen verwendet. Dies wird verwendet, um zu bestätigen, dass die Images nach Anwendung eines Spiels den richtigen Zustand erreichen. Wir testen derzeit die neueste Version von 7.x und 6.x auf allen unterstützten Plattformen.
- Die Rolle zielt auf Idempotenz ab. Mehrmaliges Ausführen der Rolle ohne Änderungen sollte zu keinen Zustandsänderungen auf dem Server führen. Wenn die Konfiguration geändert wird, werden diese angewendet und Elasticsearch dort neu gestartet, wo dies erforderlich ist.
- Um X-Pack-Tests durchzuführen, ist eine Lizenzdatei mit aktivierter Sicherheit erforderlich. Setzen Sie die Umgebungsvariable
ES_XPACK_LICENSE_FILE
auf den vollständigen Pfad der Lizenzdatei vor dem Ausführen der Tests. Eine Testlizenz ist angebracht und kann verwendet werden, indemes_xpack_trial
auftrue
gesetzt wird.
WICHTIGE HINWEISE ZUR PLUGIN-VERWALTUNG
- Wenn die ES-Version geändert wird, werden alle Plugins entfernt. Die im Playbook aufgeführten werden neu installiert. Dieses Verhalten ist in ES 6.x erforderlich.
- Wenn im Playbook für einen Knoten keine Plugins aufgeführt sind, werden alle derzeit installierten Plugins entfernt.
- Die Rolle unterstützt die automatische Erkennung von Unterschieden zwischen installierten und aufgeführten Plugins - sie installiert die aufgeführten, aber nicht installierten und entfernt die installierten, die nicht aufgeführt sind. Wenn Benutzer die Plugins neu installieren möchten, sollten sie
es_plugins_reinstall
auf true setzen. Dadurch werden alle derzeit installierten Plugins entfernt und die aufgeführten installiert.
Fragen zur Verwendung
Wir freuen uns über Fragen zur Verwendung der Rolle. Um jedoch die GitHub-Issue-Liste auf "Probleme" zu konzentrieren, bitten wir die Community, Fragen unter https://discuss.elastic.co/c/elasticsearch zu stellen. Dort wird aktiv von den Betreuern überwacht.
ansible-galaxy install elastic.elasticsearch