Elasticsearch es un motor de análisis y búsqueda distribuido basado en Apache Lucene. Proporciona un motor de búsqueda de texto completo distribuido y con capacidad para múltiples inquilinos con una interfaz web HTTP y documentos JSON sin esquema. Elasticsearch se ha convertido rápidamente en el motor de búsqueda más popular y se usa comúnmente para análisis de registros, búsqueda de texto completo, inteligencia de seguridad, análisis de negocios e inteligencia operativa.
Ansible es una herramienta de implementación de aplicaciones, administración de configuración y aprovisionamiento de software de código abierto que habilita la infraestructura como código. Se ejecuta en muchos sistemas similares a Unix y puede configurar tanto sistemas similares a Unix como Microsoft Windows.
Contenido relacionado
- Cómo instalar y configurar Elasticsearch en Ubuntu 20.04
- Cómo instalar y configurar Elasticsearch en Debian 11
Requisitos
Para seguir, asegúrese de tener:
- Un servidor Ubuntu 20.04 actualizado con al menos 2 GB de RAM y 2 núcleos
- Acceso raíz al servidor o usuario con acceso sudo
- Acceso a Internet desde el servidor
- Ansible instalado en el sistema local
Tabla de contenido
- Asegurarse de que el servidor esté actualizado
- Instalando algunos paquetes necesarios para la configuración
- Importar la clave PGP de Elasticsearch
- Instalar Elasticsearch desde el repositorio de APT
- Controladores de configuración
- Crear archivo de hosts
- Todo el libro de jugadas
- Ejecución del libro de jugadas de Ansible
1. Asegurarse de que el servidor esté actualizado
Antes de continuar, asegúrese de que el servidor esté actualizado con estas tareas. Primero actualizamos los repositorios y luego actualizamos todos los paquetes.
- 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. Instalando los paquetes necesarios
A continuación, instalemos algunos paquetes comunes que necesitaremos en nuestro libro de jugadas. El paquete wget se utilizará para descargar algunos archivos.
- name: Install required packages
dnf:
name:
- vim
- wget
state: present
3. Importar la clave PGP de Elasticsearch
Elasticsearch firma todos sus paquetes con la clave de firma de Elasticsearch. Descargue e instale la clave de firma pública con este rol:
- name: Import the Elasticsearch PGP Key
shell: |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
args:
warn: no
4. Instale Elasticsearch desde el repositorio de APT
Necesitamos crear un archivo de definición de repositorio ya que Elasticsearch no está disponible de forma predeterminada. Luego podemos instalar la búsqueda elástica después de actualizar el caché de 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
En lo anterior, también estamos notificando a los controladores para Iniciar Elasticsearch y Habilitar Elasticsearch.
5. Configurar controladores
Los controladores son como tareas normales en un libro de jugadas de Ansible, pero se ejecutan solo si la tarea contiene una directiva de "notificación" . También indica que cambió algo.
Configuremos controladores para la instalación de Elasticsearch y configuremos:
handlers:
- name: Start Elasticsearch
systemd:
name: elasticsearch
state: started
- name: Enable Elasticsearch
systemd:
name: elasticsearch
enabled: yes
6. Creando el archivo de hosts
Ansible ejecutará las tareas contra algún inventario. El inventario del servidor se agregará como hosts.yaml
archivo que define cómo se alcanzará a los servidores. Este es mi archivo de hosts:
all:
hosts:
elastsrv:
ansible_ssh_host: 10.2.11.10
ansible_ssh_user: ubuntu
7. Todo el libro de jugadas
Este es todo el libro de jugadas. Guárdelo como 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. Ejecutar el libro de jugadas de ansible
Para ejecutar el libro de jugadas de ansible, necesita tener ansible instalado localmente. Puede instalar ansible usando el administrador de paquetes del sistema operativo o, si tiene python pip, puede usarlo:
sudo pip install ansible
También necesita tener acceso ssh al servidor. Asegúrese de configurar la conexión con el servidor. Estoy usando la autenticación de clave ssh y ssh funciona para mí usando este comando:
ssh [email protected]
Ahora puede ejecutar el libro de jugadas usando este comando:
ansible-playbook -i hosts.yaml elasticsearch.yaml -vv
Una vez que el libro de jugadas termine de ejecutarse, puede acceder al servidor de Elasticsearch instalado en el servidor.