Все три сервиса в стеке middleware на devops.local. Веб-морды — только через nginx HTTPS. Клиенты (JDBC, psql, mongosh, Logstash) ходят на нативные порты.
| Сервис | Порт | UI | Данные |
|---|---|---|---|
| PostgreSQL 16 | 5432 |
https://devops.local/postgres/ (Adminer) | /opt/compose/middleware/data/postgres |
| MongoDB 7 | 27017 |
https://devops.local/mongo/ (mongo-express, basic auth) | /opt/compose/middleware/data/mongo |
| Elasticsearch 8.15 single-node | 9200 |
https://devops.local/elastic/ | /opt/compose/middleware/data/elasticsearch |
Креды: postgres_* / mongo_* из .env (make setup). Elasticsearch — без X-Pack security (LAN mini). Heap: elastic_java_opts (-Xms512m -Xmx512m).
.\ansible.ps1 middlewarePlaybook выставляет vm.max_map_count=262144 (нужно ES).
Adminer: System PostgreSQL, Server postgres, логин/БД из secrets.
С LAN:
psql "postgresql://darvik:ПАРОЛЬ@devops.local:5432/app"JDBC:
jdbc:postgresql://devops.local:5432/app
Docker / compose на том же хосте:
jdbc:postgresql://192.168.1.103:5432/app
# или из другого контейнера в сети middleware_default:
# jdbc:postgresql://postgres:5432/app
Создать ещё одну БД:
docker exec -it middleware-postgres \
psql -U darvik -d app -c 'CREATE DATABASE other;'mongo-express: тот же user/password, что root (authSource=admin).
mongosh "mongodb://darvik:ПАРОЛЬ@devops.local:27017/admin"URI для приложений:
mongodb://darvik:ПАРОЛЬ@devops.local:27017/mydb?authSource=admin
Если в пароле есть @ : / ? #, URL-encode. В UI mongo-express логин — basic auth (те же креды).
Одна нода, security выключен, heap 512 MiB. Для логов/поиска на devops.local, не кластер.
curl http://devops.local:9200/
curl http://devops.local:9200/_cluster/health?pretty
curl https://devops.local/elastic/_cluster/health?pretty # через nginxИндекс:
curl -X PUT http://devops.local:9200/demo
curl -H 'Content-Type: application/json' \
-X POST http://devops.local:9200/demo/_doc \
-d '{"msg":"hello"}'
curl http://devops.local:9200/demo/_search?prettyJava / Spring:
spring.elasticsearch.uris=http://devops.local:9200
Kibana нет специально (это и есть «mini»). При необходимости поставь отдельно и укажи ELASTICSEARCH_HOSTS=http://elasticsearch:9200.
Память: правь elastic_java_opts в inventory/group_vars/middleware.yml (-Xms256m -Xmx256m ещё меньше, -Xms1g -Xmx1g если RAM позволяет) и make middleware.
Карточки PostgreSQL / MongoDB / Elasticsearch в секции Middleware. ES поднимается до минуты — сначала может быть offline, потом green/yellow → online.
| Путь | Что |
|---|---|
data/postgres |
PGDATA |
data/mongo |
WiredTiger |
data/elasticsearch |
индексы |
Логический дамп Postgres:
docker exec middleware-postgres pg_dump -U darvik app > app.sqlMongo:
docker exec middleware-mongo mongodump -u darvik -p 'ПАРОЛЬ' --authenticationDatabase admin --out /tmp/dump