Elasticsearch è un motore di ricerca e analisi distribuito basato su Apache Lucene. Fornisce un motore di ricerca full-text distribuito e multi-tenant con un'interfaccia Web HTTP e documenti JSON privi di schemi. Elasticsearch è diventato rapidamente il motore di ricerca più popolare ed è comunemente utilizzato per l'analisi dei log, la ricerca full-text, l'intelligence sulla sicurezza, l'analisi aziendale e i casi d'uso dell'intelligence operativa.
Ansible è uno strumento open source di fornitura di software, gestione della configurazione e distribuzione di applicazioni che abilita l'infrastruttura come codice. Funziona su molti sistemi simili a Unix e può configurare sia sistemi simili a Unix che Microsoft Windows.
Contenuti correlati
- Come installare e configurare Elasticsearch su Ubuntu 20.04
- Come installare e configurare Elasticsearch su Debian 11
Prerequisiti
Per seguire, assicurati di avere:
- Un server Ubuntu 20.04 aggiornato con almeno 2 GB di RAM e 2 core
- Accesso root al server o utente con accesso sudo
- Accesso a Internet dal server
- Ansible installato sul sistema locale
Indice dei contenuti
- Assicurarsi che il server sia aggiornato
- Installazione di alcuni pacchetti necessari per la configurazione
- Importa la chiave PGP di Elasticsearch
- Installa Elasticsearch dal repository APT
- Gestori di configurazione
- Crea file hosts
- L'intero playbook
- Esecuzione del playbook Ansible
1. Garantire che il server sia aggiornato
Prima di procedere, assicurarsi che il server sia aggiornato utilizzando queste attività. Per prima cosa aggiorniamo i repository, quindi aggiorniamo tutti i pacchetti.
- 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. Installazione dei pacchetti necessari
Successivamente, installiamo alcuni pacchetti comuni di cui avremo bisogno nel nostro playbook. Il pacchetto wget verrà utilizzato per scaricare alcuni file.
- name: Install required packages
dnf:
name:
- vim
- wget
state: present
3. Importa la chiave PGP di Elasticsearch
Elasticsearch firma tutti i suoi pacchetti con la chiave di firma Elasticsearch. Scarica e installa la chiave di firma pubblica utilizzando questo ruolo:
- name: Import the Elasticsearch PGP Key
shell: |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
args:
warn: no
4. Installa Elasticsearch dal repository APT
È necessario creare un file di definizione del repository poiché Elasticsearch non è disponibile per impostazione predefinita. Possiamo quindi installare la ricerca elastica dopo aver aggiornato la cache di apt.
- 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
In quanto sopra, stiamo anche notificando ai gestori di Avvia Elasticsearch e Abilita Elasticsearch.
5. Configura i gestori
I gestori sono come le normali attività in un playbook Ansible ma vengono eseguiti solo se l'attività contiene una direttiva "notifica" . Indica anche che ha cambiato qualcosa.
Impostiamo i gestori per l'installazione di Elasticsearch e configuriamo:
handlers:
- name: Start Elasticsearch
systemd:
name: elasticsearch
state: started
- name: Enable Elasticsearch
systemd:
name: elasticsearch
enabled: yes
6. Creazione del file hosts
Ansible eseguirà le attività rispetto ad alcune scorte. L'inventario del server verrà aggiunto come hosts.yaml
file che definisce come verranno raggiunti i server. Questo è il mio file hosts:
all:
hosts:
elastsrv:
ansible_ssh_host: 10.2.11.10
ansible_ssh_user: ubuntu
7. L'intero playbook
Questo è l'intero playbook. Salvalo come 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. Esecuzione del playbook ansible
Per eseguire il playbook ansible, è necessario che ansible sia installato localmente. Puoi installare ansible usando il gestore di pacchetti del sistema operativo o se hai python pip puoi usarlo:
sudo pip install ansible
È inoltre necessario disporre dell'accesso ssh al server. Assicurati di aver impostato la connessione al server. Sto usando l'autenticazione con chiave ssh e ssh funziona per me usando questo comando:
ssh [email protected]
Ora puoi eseguire il playbook usando questo comando:
ansible-playbook -i hosts.yaml elasticsearch.yaml -vv
Al termine dell'esecuzione del playbook, puoi accedere al server Elasticsearch installato sul server.