Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Elasticsearch Installation mit Ansible

Veröffentlicht am 13. März 2019 von Christian Piazzi Hinterlasse ein Kommentar , Aktualisiert am 24. März 2019
Geschätzte Lesezeit: 2 Minuten

In einem der letztem Artikel habe ich bereits gezeigt, wie man Elasticsearch auf einem CentOS System installiert. Heute möchte ich einen Schritt weitergehen und zeigen wie man das ganze mit Ansible automatisieren kann.

Anlegen der Elasticsearch Role

Wir beginnen wieder damit, dass wir einen Ordner für die zu implementierene Role anlegen. In diesem Fall nenne ich den Ordner elasticsearch. In diesem Order lege ich wieder einen Ordner task an und dort die Datei main.yml. Weiterhin lege ich in dem elasticsearch Ordner einen Ordner mit dem Namen defaults an und erstelle auch in dem defaults Ordner eine Datei mit dem Namen main.yml. Das ganze sieht dann wie folgt aus:

1
2
3
4
5
├── elasticsearch
│   ├── defaults
│   │   └── main.yml
│   └── tasks
│       └── main.yml

Jetzt öffnen wir die defaults/main.yml mit einem Editor. Hier lege ich nun eine Variable mit der Download URL des RPM Paketes für Elasticsearch an. Das ganze sieht bei mir dann wie folgt aus:

1
elastic-rpm: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.rpm

Anschließend öffnet ich die Datei tasks/main.yml mit einem Editor. In dieser Datei lege ich nun mehrere Blöcke an. Als erste einen Block zum Herunterladen des RPM Paketes.

1
2
3
4
- name: Elasticsearch | download rpm
  get_url:
    url: {{ elastic-rpm }}
    dest: /tmp

Das heruntergeladene Paket wird im nächsten Block auf dem System installiert.

1
2
- name: Elasticsearch | install elastic
  package: "name=/tmp/elastic.rpm state=installed"

Als nächstes müssen wir die Konfiguration von Elasticsearch anpassen. Dafür können wir uns auch eine Konfigurationsdatei vordefinieren und diese auf das System kopieren. Ich verwende an dieser Stelle lieber das replace Modul von Ansible. So kann ich die Elemente die ich in der Konfiguration ersetzte später noch parametrisieren, falls ich eine Cluster Installation von Elasticserach implementieren will. Das ganze sieht dann wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
- name: Elasticserach | set node.name
  replace:
      dest: /etc/elasticsearch/elasticsearch.yml
      regexp: '#node.name: node-1'
      replace: 'node.name: elastic-01'
 
- name: Elasticserach | set cluster.name
  replace:
      dest: /etc/elasticsearch/elasticsearch.yml
      regexp: '#cluster.name: my-application'
      replace: 'cluster.name: elastic-cluster'

Zu guter letzt wollen wir Elasticserach noch dem Autostart hinzufügen. Dafür verwenden wir in Ansible das systemctl Modul.

1
2
3
4
5
- name: Elasticsearch | enable service
  systemd:
    name: elasticserach
    enabled: yes
    masked: no

Damit ist unsere Ansible Role für das installieren von Elasticsearch soweit erstmal fertig. Als nächstes können wir die Installation testen.

Testen der Elasticsearch Installation mit Ansible

Zum Testen der Ansible Role müssen wir einen Eintrag in der hosts und in der site.yml Datei erstellen. Hier müssen wir auch Java mit installieren. Die Role dafür wurde bereits in einem vorherigen Artikel beschrieben.

1
2
3
#hosts
[elasticsearch]
192.168.10.108
1
2
3
4
5
6
7
#site.yml
- name: elasticsearch
  hosts: elasticsearch
  remote_suer: root
  roles:
      - java
      - elasticsearch

Der Aufruf sieht dann wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ansible-playbook site.yml -i hosts
 
PLAY [elasticsearch] **************************************************************************
 
TASK [Gathering Facts] ************************************************************************
ok: [192.168.10.108]
 
TASK [elasticsearch : Elasticsearch | download rpm] *******************************************
changed: [192.168.10.108]
 
TASK [elasticsearch : Elasticsearch | install elastic] ****************************************
changed: [192.168.10.108]
 
TASK [elasticsearch : Elasticserach | set node.name] ******************************************
changed: [192.168.10.108]
 
TASK [elasticsearch : Elasticserach | set cluster.name] ***************************************
changed: [192.168.10.108]
 
TASK [elasticsearch : Elasticsearch | enable service] *****************************************
changed: [192.168.10.108]
 
PLAY RECAP ************************************************************************************
192.168.10.108             : ok=6    changed=5    unreachable=0    failed=0
 

Wenn hierbei keine Fehler auftauchen, wurde Elasticsearch erfolgreich auf dem Zielsystem installiert.

Die kompletten Ansible Rollen können von GitHub heruntergeladen werden.

Kategorie: Ansible, Big Data Tags: Automatisierung, Elasticsearch, Konfigurationsmanagement

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden