TerraVision
Преобразуйте код Terraform в профессиональные диаграммы облачной архитектуры, синхронизируемые с вашей инфраструктурой — автоматически, безопасно, живые документы
Посмотрите 4-минутное введение
Что такое TerraVision?
TerraVision автоматически преобразует ваш код Terraform в профессиональные диаграммы облачной архитектуры с использованием официальных наборов иконок AWS, GCP и Azure. Ваши диаграммы остаются в синхронизации с вашей инфраструктурой — больше не нужно держать устаревшие файлы Visio, draw.io или Lucidchart.
Зачем Terravision?
- ✅ Всегда актуально — диаграммы генерируются напрямую из вашего кода Terraform
- ✅ 100% клиентской стороне — доступ к облаку не требуется, работает локально, ваш код никогда не покидает ваше устройство
- ✅ Готово к CI/CD — автоматическое обновление диаграмм при каждом слиянии PR
- ✅ Бесплатно и с открытым исходным кодом — без дорогих лицензий на инструменты для диаграмм
- ✅ Мультитронность (Multi-cloud) — AWS (полная поддержка), GCP и Azure (ядро сервисов)
- ✅ Интерактивный HTML-вывод — кликабельные узлы, панорамирование/масштабирование, поиск, анимация потока данных по рёбрам
- ✅ Редактируемый экспорт в draw.io — открыть в draw.io, Lucidchart или любом редакторе mxGraph
- ✅ Опциональные AI-аннотации — подписи, заголовки и последовательности потоков из Ollama (локально) или AWS Bedrock
- ✅ Совместимо с Terragrunt — автоматически распознаёт одномодульные и многомодульные проекты Terragrunt
- ✅ MCP сервер — позвольте AI-агентам генерировать диаграммы из вашего Terraform, руководство см. здесь
Поддерживаемые облачные провайдеры
| Поставщик | Статус | Ресурсы |
|---|---|---|
| AWS | ✅ Полная поддержка | 200+ сервисов |
| Google Cloud | 🔄 Частичная поддержка | Основные сервисы |
| Azure | 🔄 Частичная поддержка | Основные сервисы |
Быстрый старт
Установка
pipx install terravision # или: pip install terravision, если в виртуальном окружении
Вам также потребуются Python 3.10+, Terraform 1.x, Graphviz и Git. См. Руководство по установке для инструкций по платформам, Docker и Nix.
Создание вашей первой диаграммы
git clone https://github.com/patrickchugh/terravision.git
cd terravision
# Пример EKS кластера
terravision draw --source tests/fixtures/aws_terraform/eks_automode --show
# Azure VM scale set
terravision draw --source tests/fixtures/azure_terraform/test_vm_vmss --show
# Из общедоступного Git-репозитория (обратите внимание на // для подкаталога)
terravision draw --source https://github.com/patrickchugh/terraform-examples.git//aws/wordpress_fargate --show
Готово — ваша диаграмма сохраняется как architecture.png и автоматически открывается.
Создание интерактивной HTML-диаграммы
terravision visualise --source ./path-to-your-terraform --show
Нажмите на любой ресурс, чтобы увидеть его метаданные Terraform, выполните поиск ресурсов, перемещайте/масштабируйте карту и наблюдайте за анимацией потока данных по рёбрам. HTML-файл представляет собой один автономный файл, который полностью работает офлайн.
Попробуйте интерактивные демо
Нажмите на любую демо-страницу ниже, чтобы увидеть интерактивный HTML-вывод TerraVision:
- 🟧 Демо AWS — Wordpress на ECS Fargate с CloudFront, RDS, EFS
- 🟦 Демо Azure — VM scale set с балансировщиком и VNet
- 🟩 Демо GCP — ядро сетей и вычислений GCP
Базовое использование
Создать диаграмму
# из локального каталога
terravision draw --source ./path-to-your-terraform
# из Git-репозитория
terravision draw --source https://github.com/user/repo.git
# Пользовательский формат и имя файла
terravision draw --source ./path-to-your-terraform --format svg --outfile my-architecture
# Редактируемый файл draw.io
terravision draw --source ./path-to-your-terraform --format drawio --outfile my-architecture
Использование предварительно сгенерированного плана Terraform (без учетных данных облака)
plan.json
terraform graph > graph.dot
# Шаг 2: создание диаграммы, без Terraform и доступа к облаку
terravision draw --planfile plan.json --graphfile graph.dot --source ./path-to-your-terraform
# Шаг 1: в вашей среде Terraform
terraform plan -out=tfplan.bin
terraform show -json tfplan.bin > plan.json
terraform graph > graph.dot
# Шаг 2: создание диаграммы, без Terraform и доступа к облаку
terravision draw --planfile plan.json --graphfile graph.dot --source ./path-to-your-terraform
Аннотации на основе ИИ (опционально)
terravision draw --source ./path-to-your-terraform --ai-annotate ollama # локальный LLM (данные останутся на вашей машине)
terravision draw --source ./path-to-your-terraform --ai-annotate bedrock # AWS Bedrock через boto3 (используются ваши учетные данные AWS)
terravision draw --source ./path-to-your-terraform --ai-annotate restapi # любой эндпоинт, совместимый с OpenAI (OpenAI, LiteLLM, vLLM, ...)
Передаваться будет только метаданные и итоговый граф — ваш исходник .tf никогда не передаётся в LLM. Бэкенд bedrock аутентифицируется через стандартную цепочку учетных данных AWS (без развертывания инфраструктуры); restapi настраивается через TV_RESTAPI_URL, TV_RESTAPI_KEY и TV_RESTAPI_MODEL. См. руководство Annotations Guide и AI-Powered Annotations для полной конфигурации.
Упрощённый вид
terravision draw --source ./path-to-your-terraform --simplified
Устраняет VPC, подсети и сетевые «мелочи». Отлично подходит для презентаций для руководства.
Общие параметры
terravision --help показывает полную справку.
| Параметр | Описание | Пример |
|---|---|---|
| --source | Каталог Terraform или URL Git | ./path-to-your-terraform |
| --format | Формат вывода: png, svg, pdf, drawio и др. | svg |
| --outfile | Имя выходного файла | my-architecture |
| --workspace | Рабочая область Terraform | production |
| --varfile | Файл переменных (повторяемый) | prod.tfvars |
| --planfile | Предгенерированный план JSON | plan.json |
| --graphfile | Предгенерированный DOT граф | graph.dot |
| --ai-annotate | Бэкенд AI-аннотации | ollama, bedrock, restapi |
| --simplified | Упрощённый вид (без сетей) | (флаг) |
| --show | Открывать после генерации | (флаг) |
Документация
Полная документация доступна на patrickchugh.github.io/terravision.
Для пользователей:
- Руководство по установке
- Руководство по использованию
- Руководство по аннотациям
- Интеграция CI/CD
- Руководство MCP Server
- FAQ
- Устранение неполадок
Для участников проекта:
- Руководство по внесению вклада
- Руководство разработчика
- Руководство по Resource Handler
- Устав проекта
Часто задаваемые вопросы (FAQ)
Общие вопросы — учетные данные облака, конфиденциальность данных LLM, работа офлайн, Terragrunt, форматы вывода и многое другое — отвечаются в FAQ на сайте документации.
Внесение вклада
Мы рады вкладу. См. CONTRIBUTING.md для инструкций по настройке окружения, стандартам кодирования и процессу PR.
Поддержка
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Документация: patr ic kchugh.github.io/terravision
Лицензия
См. LICENSE.
Благодарности
- Graphviz — визуализация диаграмм
- Terraform — разбор инфраструктуры
- Terragrunt — оркестрация мульти-модульных проектов
- Иконки облачных поставщиков из официальных наборов иконок AWS, GCP и Azure