Elasticsearch est un moteur de recherche et d'analyse distribué basé sur Apache Lucene. Il fournit un moteur de recherche en texte intégral distribué et mutualisé avec une interface Web HTTP et des documents JSON sans schéma. Elasticsearch est rapidement devenu le moteur de recherche le plus populaire et est couramment utilisé pour l'analyse des journaux, la recherche en texte intégral, les renseignements sur la sécurité, l'analyse commerciale et les cas d'utilisation de l'intelligence opérationnelle.
Ansible est un outil de provisionnement de logiciels open source, de gestion de la configuration et de déploiement d'applications permettant l'infrastructure en tant que code. Il fonctionne sur de nombreux systèmes de type Unix et peut configurer à la fois des systèmes de type Unix et Microsoft Windows.
Contenu connexe
- Comment installer et configurer Elasticsearch sur Ubuntu 20.04
- Comment installer et configurer Elasticsearch sur Debian 11
Prérequis
Pour suivre, assurez-vous d'avoir :
- Un serveur Ubuntu 20.04 mis à jour avec au moins 2 Go de RAM et 2 cœurs
- Accès root au serveur ou utilisateur avec accès sudo
- Accès à Internet depuis le serveur
- Ansible installé sur le système local
Table des matières
- S'assurer que le serveur est à jour
- Installation de certains packages nécessaires à la configuration
- Importer la clé PGP Elasticsearch
- Installer Elasticsearch à partir du référentiel APT
- Gestionnaires de configuration
- Créer un fichier d'hôtes
- Tout le livre de jeu
- Exécuter le playbook Ansible
1. S'assurer que le serveur est à jour
Avant de continuer, assurez-vous que le serveur est à jour en utilisant ces tâches. Nous actualisons d'abord les dépôts, puis nous mettons à niveau tous les packages.
- 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. Installation des packages nécessaires
Ensuite, installons quelques packages communs dont nous aurons besoin dans notre playbook. Le package wget sera utilisé pour télécharger certains fichiers.
- name: Install required packages
dnf:
name:
- vim
- wget
state: present
3. Importer la clé PGP Elasticsearch
Elasticsearch signe tous ses packages avec la clé de signature Elasticsearch. Téléchargez et installez la clé de signature publique en utilisant ce rôle :
- name: Import the Elasticsearch PGP Key
shell: |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
args:
warn: no
4. Installez Elasticsearch à partir du référentiel APT
Nous devons créer un fichier de définition de référentiel car Elasticsearch n'est pas disponible par défaut. Nous pouvons ensuite installer elastic search après avoir mis à jour le cache 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
Dans ce qui précède, nous informons également les gestionnaires de Démarrer Elasticsearch et Activer Elasticsearch.
5. Configurer les gestionnaires
Les gestionnaires ressemblent à des tâches normales dans un playbook Ansible, mais ils ne s'exécutent que si la tâche contient une directive "notifier" . Cela indique également que cela a changé quelque chose.
Configurons les gestionnaires pour l'installation d'Elasticsearch et configurons :
handlers:
- name: Start Elasticsearch
systemd:
name: elasticsearch
state: started
- name: Enable Elasticsearch
systemd:
name: elasticsearch
enabled: yes
6. Création du fichier hosts
Ansible exécutera les tâches par rapport à un inventaire. L'inventaire du serveur sera ajouté en tant que hosts.yaml
fichier qui définit comment les serveurs seront atteints. Voici mon fichier hosts :
all:
hosts:
elastsrv:
ansible_ssh_host: 10.2.11.10
ansible_ssh_user: ubuntu
7. Tout le playbook
C'est tout le livre de jeu. Enregistrez-le sous 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. Exécuter le playbook ansible
Pour exécuter le playbook ansible, vous devez installer ansible localement. Vous pouvez installer ansible à l'aide du gestionnaire de packages du système d'exploitation ou si vous avez python pip, vous pouvez l'utiliser :
sudo pip install ansible
Vous devez également avoir un accès ssh au serveur. Assurez-vous d'avoir configuré la connexion au serveur. J'utilise l'authentification par clé ssh et ssh fonctionne pour moi en utilisant cette commande :
ssh [email protected]
Vous pouvez maintenant exécuter le playbook à l'aide de cette commande :
ansible-playbook -i hosts.yaml elasticsearch.yaml -vv
Une fois l'exécution du playbook terminée, vous pouvez accéder au serveur Elasticsearch installé sur le serveur.