From 6eec8fe4326937d34a7476e92b33cc333173bea8 Mon Sep 17 00:00:00 2001 From: dannc Date: Tue, 7 Jun 2022 11:00:06 +0700 Subject: [PATCH] add homework 6.5: task 1 --- readme.md | 1 + .../06-database/6.5/docker-compose.yml | 11 +++ .../06-database/6.5/elasticsearch/Dockerfile | 12 +++ .../6.5/elasticsearch/elasticsearch.yml | 15 ++++ src/homework/06-database/6.5/readme.md | 75 +++++++++++++++++++ 5 files changed, 114 insertions(+) create mode 100644 src/homework/06-database/6.5/docker-compose.yml create mode 100644 src/homework/06-database/6.5/elasticsearch/Dockerfile create mode 100644 src/homework/06-database/6.5/elasticsearch/elasticsearch.yml create mode 100644 src/homework/06-database/6.5/readme.md diff --git a/readme.md b/readme.md index 4b5fa54..d89ce89 100644 --- a/readme.md +++ b/readme.md @@ -28,3 +28,4 @@ * [6.2. SQL](/src/homework/06-database/6.2) * [6.3. MySQL](/src/homework/06-database/6.3) * [6.4. PostgreSQL](/src/homework/06-database/6.4) +* [6.5. Elasticsearch](/src/homework/06-database/6.5) diff --git a/src/homework/06-database/6.5/docker-compose.yml b/src/homework/06-database/6.5/docker-compose.yml new file mode 100644 index 0000000..171c898 --- /dev/null +++ b/src/homework/06-database/6.5/docker-compose.yml @@ -0,0 +1,11 @@ +--- +version: "3.8" + +services: + elasticsearch: + image: dannecron/netology-devops-elasticsearch:latest + expose: + - 9200 + - 9300 + ports: + - "9200:9200" diff --git a/src/homework/06-database/6.5/elasticsearch/Dockerfile b/src/homework/06-database/6.5/elasticsearch/Dockerfile new file mode 100644 index 0000000..c851522 --- /dev/null +++ b/src/homework/06-database/6.5/elasticsearch/Dockerfile @@ -0,0 +1,12 @@ +FROM elasticsearch:7.16.3 + +ENV NODE_NAME=netology_test +ENV DISCOVERY_TYPE=single-node +ENV ES_HEAP_SIZE=262144 + +RUN mkdir -m 774 -p /var/lib/elasticsearch-data \ + && chown elasticsearch -R /var/lib/elasticsearch-data \ + && mkdir -m 774 -p /var/log/elasticsearch \ + && chown elasticsearch -R /var/log/elasticsearch + +COPY ./elasticsearch.yml /usr/share/elasticsearch/config/elasticsearch.yml diff --git a/src/homework/06-database/6.5/elasticsearch/elasticsearch.yml b/src/homework/06-database/6.5/elasticsearch/elasticsearch.yml new file mode 100644 index 0000000..bcc0705 --- /dev/null +++ b/src/homework/06-database/6.5/elasticsearch/elasticsearch.yml @@ -0,0 +1,15 @@ +--- +cluster: + name: "docker-cluster" +network: + host: 0.0.0.0 +node: + name: ${NODE_NAME} +discovery: + type: ${DISCOVERY_TYPE} +path: + data: /var/lib/elasticsearch-data + logs: /var/log/elasticsearch +xpack: + security: + enabled: false diff --git a/src/homework/06-database/6.5/readme.md b/src/homework/06-database/6.5/readme.md new file mode 100644 index 0000000..ff06574 --- /dev/null +++ b/src/homework/06-database/6.5/readme.md @@ -0,0 +1,75 @@ +Выполнение [домашнего задания](https://github.com/netology-code/virt-homeworks/blob/master/06-db-05-elasticsearch/README.md) +по теме "6.5. Elasticsearch". + +## Q/A + +### Задача 1 + +> В этом задании вы потренируетесь в: +> - установке elasticsearch +> - первоначальном конфигурировании elastcisearch +> - запуске elasticsearch в docker +> +> Используя докер образ [elasticsearch:7](https://hub.docker.com/_/elasticsearch) как базовый: +> +> - составьте Dockerfile-манифест для elasticsearch +> - соберите docker-образ и сделайте `push` в ваш docker.io репозиторий +> - запустите контейнер из получившегося образа и выполните запрос пути `/` c хост-машины +> +> Требования к `elasticsearch.yml`: +> - данные `path` должны сохраняться в `/var/lib` +> - имя ноды должно быть `netology_test` +> +> В ответе приведите: +> - текст Dockerfile манифеста +> - ссылку на образ в репозитории dockerhub +> - ответ `elasticsearch` на запрос пути `/` в json виде +> +> Подсказки: +> - при сетевых проблемах внимательно изучите кластерные и сетевые настройки в elasticsearch.yml +> - при некоторых проблемах вам поможет docker директива ulimit +> - elasticsearch в логах обычно описывает проблему и пути ее решения +> - обратите внимание на настройки безопасности такие как `xpack.security.enabled` +> - если докер образ не запускается и падает с ошибкой 137 в этом случае может помочь настройка `-e ES_HEAP_SIZE` +> - при настройке `path` возможно потребуется настройка прав доступа на директорию + +Сборка происходит по описанию из [elasticsearch/Dockerfile](./elasticsearch/Dockerfile). +Основная конфигурация `elasticsearch` представлена в [elasticsearch/elasticsearch.yml(./elasticsearch/elasticsearch.yml). + +Образ собран и расположен [в репозитории на hub.docker.com](https://hub.docker.com/r/dannecron/netology-devops-elasticsearch). + +Для запуска уже собранного образа используется конфигурация [docker-compose.yml](./docker-compose.yml). +Здесь на хост "проброшен" порт `9200`, поэтому можно выполнить следующий запрос для получение информации от `elasticsearch`: + +```shell +curl --request GET -sL \ + --url 'http://localhost:9200/' \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" + +{ + "name" : "netology_test", + "cluster_name" : "docker-cluster", + "cluster_uuid" : "RiOGXZdfR6-0v22HKRWRuA", + "version" : { + "number" : "7.16.3", + "build_flavor" : "default", + "build_type" : "docker", + "build_hash" : "4e6e4eab2297e949ec994e688dad46290d018022", + "build_date" : "2022-01-06T23:43:02.825887787Z", + "build_snapshot" : false, + "lucene_version" : "8.10.1", + "minimum_wire_compatibility_version" : "6.8.0", + "minimum_index_compatibility_version" : "6.0.0-beta1" + }, + "tagline" : "You Know, for Search" +} +``` + +### Задача 2 + +// todo + +### Задача 3 + +// todo \ No newline at end of file