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 | ||
--image | string | Docker-образ для CI джобов | ||
--pattern | string | Паттерн структуры директорий |
При указании любого из флагов --provider, --binary, --image или --pattern мастер автоматически пропускается и используется неинтерактивный режим.
Примеры
Интерактивный режим (по умолчанию)
terraci initЗапускает TUI-мастер, который предлагает выбрать:
- CI-провайдер (GitLab CI или GitHub Actions)
- Бинарный файл Terraform (Terraform или OpenTofu)
- Паттерн структуры директорий
- Включить ли сабмодули
- Включить ли комментарии в MR/PR
- Включить ли оценку стоимости
Неинтерактивный режим
terraci init --ciСоздаёт .terraci.yaml со значениями по умолчанию без запросов.
Выбор провайдера
# Конфигурация для GitHub Actions
terraci init --provider github
# Конфигурация для GitLab CI
terraci init --provider gitlabПри --provider github сгенерированный конфиг будет содержать секцию plugins.github (с runs_on, steps_before и т.д.) и не будет содержать секцию plugins.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 --binary terraform --image registry.example.com/terraform:1.6Пользовательский паттерн
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
При выборе GitLab (или по умолчанию) создаётся:
structure:
pattern: "{service}/{environment}/{region}/{module}"
plugins:
gitlab:
terraform_binary: "terraform"
image: "hashicorp/terraform:1.6"
plan_enabled: true
auto_approve: false
init_enabled: true
mr:
comment:
enabled: true
backend:
type: s3
key_pattern: "{service}/{environment}/{region}/{module}/terraform.tfstate"Провайдер GitHub
При выборе GitHub создаётся:
structure:
pattern: "{service}/{environment}/{region}/{module}"
plugins:
github:
terraform_binary: "terraform"
runs_on: "ubuntu-latest"
plan_enabled: true
auto_approve: false
init_enabled: true
permissions:
contents: read
pull-requests: write
job_defaults:
steps_before:
- uses: actions/checkout@v4
- uses: hashicorp/setup-terraform@v3
pr:
comment: {}
backend:
type: s3
key_pattern: "{service}/{environment}/{region}/{module}/terraform.tfstate"Что создаётся
Команда создаёт:
.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