terraci init
Инициализация конфигурационного файла TerraCi.
Синтаксис
terraci init [flags]Описание
Команда init создаёт файл .terraci.yaml. По умолчанию запускается интерактивный TUI-мастер, который проведёт вас через выбор конфигурации. Используйте --ci для неинтерактивного режима, подходящего для автоматизации, или передайте конкретные флаги для пропуска мастера.
Флаги
| Флаг | Сокр. | Тип | По умолчанию | Описание |
|---|---|---|---|---|
--force | -f | bool | false | Перезаписать существующий файл |
--ci | bool | false | Неинтерактивный режим (пропустить TUI-мастер) | |
--provider | string | CI-провайдер: gitlab или github | ||
--binary | string | Бинарный файл: terraform или tofu | ||
--pattern | string | Паттерн структуры директорий |
При указании любого из флагов --provider, --binary или --pattern мастер автоматически пропускается и используется неинтерактивный режим.
Примеры
Интерактивный режим (по умолчанию)
terraci initЗапускает TUI-мастер со следующими группами:
- Основное — CI-провайдер (GitLab CI или GitHub Actions), бинарный файл Terraform (Terraform или OpenTofu)
- Структура — паттерн структуры директорий
- Опции пайплайна — настройка plan-джобов
- Группы плагинов — динамические группы от включённых плагинов (gitlab/github image, summary, cost, policy, tfupdate и т.д.)
Неинтерактивный режим
terraci init --ciСоздаёт .terraci.yaml со значениями по умолчанию без запросов.
Выбор провайдера
# Конфигурация для GitHub Actions
terraci init --provider github
# Конфигурация для GitLab CI
terraci init --provider gitlabПри --provider github сгенерированный конфиг будет содержать секцию extensions.github (с runs_on, steps_before и т.д.) и не будет содержать секцию extensions.gitlab. При --provider gitlab — наоборот.
Настройка OpenTofu
terraci init --provider gitlab --binary tofuАвтоматически выбирается соответствующий образ (ghcr.io/opentofu/opentofu:1.6), а для GitHub Actions используется opentofu/setup-opentofu@v1 вместо hashicorp/setup-terraform@v3.
Пользовательский паттерн
terraci init --pattern "{team}/{stack}/{datacenter}/{component}"Полный неинтерактивный пример
terraci init --provider github --binary tofu --pattern "{service}/{environment}/{region}/{module}"Перезапись существующего
terraci init --forceПерезаписывает .terraci.yaml без запроса подтверждения.
Инициализация в другой директории
terraci -d /path/to/project initСоздаёт конфигурацию в указанной директории.
Генерируемая конфигурация
Провайдер GitLab
При --provider gitlab (или по умолчанию) создаётся:
structure:
pattern: "{service}/{environment}/{region}/{module}"
execution:
binary: terraform
extensions:
gitlab:
image:
name: hashicorp/terraform:1.6
stages_prefix: deployПровайдер GitHub
При --provider github создаётся:
structure:
pattern: "{service}/{environment}/{region}/{module}"
execution:
binary: terraform
extensions:
github:
runs_on: ubuntu-latest
permissions:
contents: read
pull-requests: write
job_defaults:
steps_before:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3Конфигурация backend (S3, GCS и т.д.) не генерируется командой
terraci init— TerraCi читает существующие блокиterraform { backend "..." }из ваших модулей для разрешения путей state-файлов; ничего не добавляется в.terraci.yaml.
Что создаётся
Команда создаёт:
.terraci.yamlв текущей (или указанной) директории
Команда НЕ изменяет:
- Существующие Terraform-файлы
- Конфигурацию CI
- Другие файлы проекта
После инициализации
Проверьте конфигурацию
bashcat .terraci.yamlНастройте под свой проект
- Измените паттерн под вашу структуру
- Обновите Docker-образ или метки раннеров
- Добавьте исключения
- Настройте backend
Валидация
bashterraci validateСгенерируйте первый пайплайн
bashterraci generate --dry-run # Для GitLab: terraci generate -o .gitlab-ci.yml # Для GitHub: terraci generate -o .github/workflows/terraform.yml
Устранение проблем
Файл уже существует
Error: config file already exists: .terraci.yaml (use --force to overwrite)Решение: Используйте --force или вручную отредактируйте существующий файл.
Нет прав на запись
Error: permission denied: .terraci.yamlРешение: Проверьте права на директорию и файл.
Смотрите также
- Обзор конфигурации — справочник конфигурации .terraci.yaml
- Быстрый старт — начало работы с TerraCi