mirror of
https://github.com/Dannecron/netology-devops.git
synced 2025-12-25 23:32:37 +03:00
add homework 6.5: task 1
This commit is contained in:
@@ -28,3 +28,4 @@
|
|||||||
* [6.2. SQL](/src/homework/06-database/6.2)
|
* [6.2. SQL](/src/homework/06-database/6.2)
|
||||||
* [6.3. MySQL](/src/homework/06-database/6.3)
|
* [6.3. MySQL](/src/homework/06-database/6.3)
|
||||||
* [6.4. PostgreSQL](/src/homework/06-database/6.4)
|
* [6.4. PostgreSQL](/src/homework/06-database/6.4)
|
||||||
|
* [6.5. Elasticsearch](/src/homework/06-database/6.5)
|
||||||
|
|||||||
11
src/homework/06-database/6.5/docker-compose.yml
Normal file
11
src/homework/06-database/6.5/docker-compose.yml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
services:
|
||||||
|
elasticsearch:
|
||||||
|
image: dannecron/netology-devops-elasticsearch:latest
|
||||||
|
expose:
|
||||||
|
- 9200
|
||||||
|
- 9300
|
||||||
|
ports:
|
||||||
|
- "9200:9200"
|
||||||
12
src/homework/06-database/6.5/elasticsearch/Dockerfile
Normal file
12
src/homework/06-database/6.5/elasticsearch/Dockerfile
Normal 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
|
||||||
15
src/homework/06-database/6.5/elasticsearch/elasticsearch.yml
Normal file
15
src/homework/06-database/6.5/elasticsearch/elasticsearch.yml
Normal 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
|
||||||
75
src/homework/06-database/6.5/readme.md
Normal file
75
src/homework/06-database/6.5/readme.md
Normal 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
|
||||||
Reference in New Issue
Block a user