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
- 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
- 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
- Structure du répertoire Assurez-vous que la structure de votre répertoire ressemble à ceci :
.
├── Vagrantfile
├── ansible
│ ├── elasticsearch.yml
│ └── kibana.yml
- 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.
-
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. -
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.