Aller au contenu principal

ansible-kibana-elastic

Pour configurer Elasticsearch et Kibana à l'aide de Vagrant et Ansible, vous pouvez suivre ces étapes. Cette configuration suppose que sont installés sur votre machine locale:

  • Vagrant
  • Ansible
  1. Vagrantfile

Le fichier Vagrantfile définira les machines virtuelles (VM) qui seront provisionnées. Dans cet exemple, nous allons créer deux VM :

  • Une pour Elasticsearch
  • Une pour Kibana.
Vagrant.configure("2") do |config|
# Elasticsearch VM
config.vm.define "elasticsearch" do |es|
es.vm.box = "bento/debian-12-arm64"
es.vm.network "private_network", ip: "192.168.56.10"
es.vm.hostname = "elasticsearch"
es.vm.provider "vmware_desktop" do |vb|
vb.memory = "2048"
vb.cpus = 2
end
es.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/elasticsearch.yml"
end
end

# Kibana VM
config.vm.define "kibana" do |kb|
kb.vm.box = "bento/debian-12-arm64"
kb.vm.network "private_network", ip: "192.168.56.20"
kb.vm.hostname = "kibana"
kb.vm.provider "vmware_desktop" do |vb|
vb.memory = "1024"
vb.cpus = 1
end
kb.vm.provision "ansible" do |ansible|
ansible.playbook = "ansible/kibana.yml"
end
end
end
  1. Ansible Playbooks

Playbook Elasticsearch (ansible/elasticsearch.yml) Ce playbook installera et configurera Elasticsearch sur la machine virtuelle Elasticsearch.

---
- hosts: elasticsearch
become: yes
tasks:
- name: Update apt cache
apt:
update_cache: yes

- name: Install required packages
apt:
name: "{{ item }}"
state: present
update_cache: yes
with_items:
- apt-transport-https
- openjdk-17-jdk
- gpg-agent
- curl
- procps
- net-tools
- gnupg

- name: Install Elasticsearch
block:
- name: elasticsearch-install | Import Elasticsearch GPG Key
shell: "curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg"

- name: Add Elasticsearch APT Repository
apt_repository:
repo: "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main"
state: present
filename: "elastic-8.x.list"
update_cache: yes

- name: Install Elasticsearch package
apt:
name: elasticsearch
state: present

- name: Configure Elasticsearch
copy:
dest: /etc/elasticsearch/elasticsearch.yml
content: |
cluster.name: mekoo-cluster
node.name: "{{ ansible_hostname }}"
network.host: 192.168.56.10
discovery.seed_hosts: ["192.168.56.10"]
cluster.initial_master_nodes: ["192.168.56.10"]
owner: root
group: root
mode: '0755'

- name: Start and enable Elasticsearch service
service:
name: elasticsearch
state: started
enabled: yes

# - name: copying server.crt and ca.crt
# copy:
# src: "{{ item.src }}"
# dest: "{{ item.dest }}"
# remote_src: true
# loop:
# - {src: '/tmp/server.crt', dest: '/etc/openvpn/server.crt'}
# - {src: '/tmp/ca.crt', dest: '/etc/openvpn/ca.crt'}
# become: true

Playbook Kibana (ansible/kibana.yml) Ce playbook installera et configurera Kibana sur la VM Kibana.

---
- hosts: kibana
become: yes
tasks:
- name: Update apt cache
apt:
update_cache: yes

- name: Install required packages
apt:
name:
- apt-transport-https
state: present

- name: Add Elasticsearch APT Repository
apt_repository:
repo: "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main"
state: present
filename: "elastic-8.x.list"
update_cache: yes

- name: Install Kibana
apt:
name: kibana
state: present

- name: Configure Kibana
copy:
dest: /etc/kibana/kibana.yml
content: |
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.56.10:9200"]
owner: root
group: root
mode: '0644'

- name: Start and enable Kibana service
service:
name: kibana
state: started
enabled: yes
  1. Structure du répertoire Assurez-vous que la structure de votre répertoire ressemble à ceci :
.
├── Vagrantfile
├── ansible
│ ├── elasticsearch.yml
│ └── kibana.yml
  1. Provisionnement

Des machines virtuelles Pour provisionner les machines virtuelles, exécutez la commande suivante dans le répertoire contenant votre Vagrantfile :

vagrant up

Cela démarrera les machines virtuelles et exécutera les playbooks Ansible pour installer et configurer Elasticsearch et Kibana.

  1. Accéder à Kibana Une fois le provisionnement terminé, vous pouvez accéder à Kibana en accédant à http://192.168.56.20:5601 dans votre navigateur Web.

  2. Facultatif : Détruire les machines virtuelles Si vous souhaitez détruire les machines virtuelles et les nettoyer, vous pouvez exécuter :

vagrant destroy

Cela supprimera les machines virtuelles et libérera des ressources.

Remarques :

  • Assurez-vous que les adresses IP et les ports utilisés dans la configuration correspondent à votre configuration réseau.
  • Vous pouvez ajuster les paramètres de mémoire et de CPU dans le fichier Vagrant en fonction des capacités de votre système.
  • Les versions d'Elasticsearch et de Kibana utilisées dans cet exemple sont de la série 7.x.
  • Vous pouvez modifier les URL du référentiel et les noms des paquets pour qu'ils correspondent à d'autres versions si nécessaire.