feat: add QUICKSTART.md for ollama-mcp
This commit is contained in:
269
apps/ollama-mcp/QUICKSTART.md
Normal file
269
apps/ollama-mcp/QUICKSTART.md
Normal file
@@ -0,0 +1,269 @@
|
|||||||
|
# Ollama MCP Quick Start Guide
|
||||||
|
|
||||||
|
## Быстрая установка (1 команда)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash
|
||||||
|
```
|
||||||
|
|
||||||
|
## Что будет установлено:
|
||||||
|
|
||||||
|
1. **MCP Kubernetes Server** - REST API для управления кластером
|
||||||
|
2. **MCP Gitea Server** - REST API для работы с Git репозиториями
|
||||||
|
3. **Docker Compose** - оркестрация сервисов
|
||||||
|
4. **Health checks** - автоматический мониторинг состояния
|
||||||
|
|
||||||
|
## После установки:
|
||||||
|
|
||||||
|
### 1. Настроить Gitea токен
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/ollama-mcp
|
||||||
|
nano .env
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавь свой токен:
|
||||||
|
```env
|
||||||
|
GITEA_TOKEN=your_token_here
|
||||||
|
```
|
||||||
|
|
||||||
|
Получить токен:
|
||||||
|
- https://git.thedevops.dev/user/settings/applications
|
||||||
|
- Generate New Token
|
||||||
|
- Права: `repo`, `admin:org`, `write:repository`
|
||||||
|
|
||||||
|
### 2. Перезапустить сервисы
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose restart
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Проверить статус
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose ps
|
||||||
|
docker-compose logs -f
|
||||||
|
```
|
||||||
|
|
||||||
|
## Интеграция с Ollama
|
||||||
|
|
||||||
|
### Способ 1: Через Open WebUI
|
||||||
|
|
||||||
|
Если у тебя установлен Open WebUI:
|
||||||
|
|
||||||
|
1. Settings → Connections → Add Connection
|
||||||
|
2. Name: `Kubernetes MCP`
|
||||||
|
3. URL: `http://localhost:3001`
|
||||||
|
4. Type: `REST API`
|
||||||
|
|
||||||
|
### Способ 2: Прямые запросы
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Список подов
|
||||||
|
curl -X POST http://localhost:3001/api/pods/list \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"namespace": "argocd"}'
|
||||||
|
|
||||||
|
# Логи пода
|
||||||
|
curl -X POST http://localhost:3001/api/pods/logs \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"name": "argocd-server-xxx", "namespace": "argocd", "tailLines": 100}'
|
||||||
|
|
||||||
|
# Список репозиториев
|
||||||
|
curl -X POST http://localhost:3002/api/repos/list \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"owner": "admin"}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Способ 3: Создать wrapper для Ollama
|
||||||
|
|
||||||
|
Создай файл `ollama-k8s.sh`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
PROMPT="$*"
|
||||||
|
|
||||||
|
# Отправить запрос к Ollama с контекстом MCP
|
||||||
|
ollama run qwen2.5-coder:32b "
|
||||||
|
Context: You have access to Kubernetes API at http://localhost:3001 and Gitea API at http://localhost:3002
|
||||||
|
|
||||||
|
Available Kubernetes endpoints:
|
||||||
|
- POST /api/pods/list - list pods
|
||||||
|
- POST /api/pods/logs - get pod logs
|
||||||
|
- POST /api/deployments/list - list deployments
|
||||||
|
- POST /api/services/list - list services
|
||||||
|
- POST /api/namespaces/list - list namespaces
|
||||||
|
|
||||||
|
Available Gitea endpoints:
|
||||||
|
- POST /api/repos/list - list repositories
|
||||||
|
- POST /api/repos/file/get - get file content
|
||||||
|
- POST /api/repos/tree/get - list directory
|
||||||
|
- POST /api/repos/file/create - create file
|
||||||
|
- POST /api/repos/branches/list - list branches
|
||||||
|
|
||||||
|
User request: $PROMPT
|
||||||
|
|
||||||
|
Generate curl commands to execute this request and show the results.
|
||||||
|
"
|
||||||
|
```
|
||||||
|
|
||||||
|
Использование:
|
||||||
|
```bash
|
||||||
|
chmod +x ollama-k8s.sh
|
||||||
|
./ollama-k8s.sh "покажи все поды в namespace monitoring"
|
||||||
|
./ollama-k8s.sh "получи логи grafana за последние 50 строк"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Примеры промптов для Ollama
|
||||||
|
|
||||||
|
### Kubernetes:
|
||||||
|
|
||||||
|
```
|
||||||
|
"Покажи все поды в namespace argocd"
|
||||||
|
"Получи логи пода prometheus-xxx за последние 100 строк"
|
||||||
|
"Список всех deployments в namespace monitoring"
|
||||||
|
"Покажи все сервисы в default namespace"
|
||||||
|
"Какие namespaces есть в кластере?"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Gitea:
|
||||||
|
|
||||||
|
```
|
||||||
|
"Покажи все репозитории пользователя admin"
|
||||||
|
"Получи содержимое файла apps/loki/statefulset.yaml из репозитория k3s-gitops"
|
||||||
|
"Покажи структуру директории apps/ в k3s-gitops"
|
||||||
|
"Создай файл test.yaml в репозитории k3s-gitops"
|
||||||
|
"Какие ветки есть в репозитории k3s-gitops?"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### MCP серверы не отвечают
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/ollama-mcp
|
||||||
|
|
||||||
|
# Проверить логи
|
||||||
|
docker-compose logs mcp-kubernetes
|
||||||
|
docker-compose logs mcp-gitea
|
||||||
|
|
||||||
|
# Перезапустить
|
||||||
|
docker-compose restart
|
||||||
|
|
||||||
|
# Пересобрать
|
||||||
|
docker-compose down
|
||||||
|
docker-compose build --no-cache
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ошибка подключения к Kubernetes
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверить kubeconfig
|
||||||
|
kubectl --kubeconfig=~/ollama-mcp/config/kubeconfig get nodes
|
||||||
|
|
||||||
|
# Если не работает, скопировать заново
|
||||||
|
cp ~/.kube/config ~/ollama-mcp/config/kubeconfig
|
||||||
|
docker-compose restart mcp-kubernetes
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ошибка подключения к Gitea
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Проверить токен
|
||||||
|
curl -H "Authorization: token YOUR_TOKEN" \
|
||||||
|
https://git.thedevops.dev/api/v1/user
|
||||||
|
|
||||||
|
# Обновить токен в .env
|
||||||
|
nano ~/ollama-mcp/.env
|
||||||
|
docker-compose restart mcp-gitea
|
||||||
|
```
|
||||||
|
|
||||||
|
### Порты заняты
|
||||||
|
|
||||||
|
Если порты 3001 или 3002 уже заняты:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nano ~/ollama-mcp/.env
|
||||||
|
```
|
||||||
|
|
||||||
|
Измени порты:
|
||||||
|
```env
|
||||||
|
MCP_K8S_PORT=4001
|
||||||
|
MCP_GITEA_PORT=4002
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Управление
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd ~/ollama-mcp
|
||||||
|
|
||||||
|
# Запустить
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# Остановить
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
# Перезапустить
|
||||||
|
docker-compose restart
|
||||||
|
|
||||||
|
# Статус
|
||||||
|
docker-compose ps
|
||||||
|
|
||||||
|
# Логи (следить в реальном времени)
|
||||||
|
docker-compose logs -f
|
||||||
|
|
||||||
|
# Логи конкретного сервиса
|
||||||
|
docker-compose logs -f mcp-kubernetes
|
||||||
|
docker-compose logs -f mcp-gitea
|
||||||
|
|
||||||
|
# Обновить образы
|
||||||
|
docker-compose pull
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Безопасность
|
||||||
|
|
||||||
|
- **Kubeconfig**: Защищен правами 600, доступен только внутри контейнера
|
||||||
|
- **Gitea Token**: Хранится в .env (не коммитится в git)
|
||||||
|
- **Network**: Изолированная Docker сеть
|
||||||
|
- **Ports**: По умолчанию доступны на localhost (127.0.0.1)
|
||||||
|
|
||||||
|
Для публичного доступа (НЕ рекомендуется без SSL):
|
||||||
|
```yaml
|
||||||
|
ports:
|
||||||
|
- "0.0.0.0:3001:3000" # Доступен извне
|
||||||
|
```
|
||||||
|
|
||||||
|
## Дополнительно
|
||||||
|
|
||||||
|
### Мониторинг
|
||||||
|
|
||||||
|
Health checks доступны по:
|
||||||
|
- http://localhost:3001/health
|
||||||
|
- http://localhost:3002/health
|
||||||
|
|
||||||
|
### Логи в файл
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose logs > mcp-logs.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### Автозапуск при перезагрузке
|
||||||
|
|
||||||
|
Сервисы уже настроены с `restart: unless-stopped`
|
||||||
|
|
||||||
|
Для проверки после перезагрузки:
|
||||||
|
```bash
|
||||||
|
docker ps | grep mcp
|
||||||
|
```
|
||||||
|
|
||||||
|
## Полная документация
|
||||||
|
|
||||||
|
Смотри [README.md](./README.md) для подробной информации.
|
||||||
Reference in New Issue
Block a user