Files
k3s-gitops/apps/ollama-mcp/QUICKSTART.md
2026-01-11 13:16:35 +00:00

270 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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) для подробной информации.