add homework 6.5: task 1

This commit is contained in:
2022-06-07 11:00:06 +07:00
parent 8468fc0c80
commit 6eec8fe432
5 changed files with 114 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
---
version: "3.8"
services:
elasticsearch:
image: dannecron/netology-devops-elasticsearch:latest
expose:
- 9200
- 9300
ports:
- "9200:9200"

View File

@@ -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

View File

@@ -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

View File

@@ -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