Есть ли более простой способ запуска команд terraform с помощью npm или самостоятельно, когда у вас несколько сред? это работает как на win, так и на linux?

В настоящее время я пытаюсь создать базовый набор инфраструктуры для трех разных проектов через облако terraform.

У меня есть 3 рабочих места:

  • разработка
  • постановка
  • производство

со своими собственными переменными, определенными для учетных записей служб, и все такое.

Я хочу, по крайней мере, на данный момент, взаимодействовать с инфраструктурой через интерфейс командной строки с моей локальной машины. Проблема в том, что я должен определить рабочее пространство в моемbackendкак жестко закодированная строка, поэтому я не могу вставить переменную.

Я нашел умный способ обойти это, используяdev.hclфайлы, которые содержат данные о бэкэнде, поэтому я могу просто запустить:

      terraform -chdir=infrastructure init -backend-config="dev.hcl"

Это работает, но мне приходится много печатать всякий раз, когда я хочу запустить init/plan/apply, поэтому я ищу более простой способ упростить это.

Я пробовал создавать скрипты в корнеpackage.jsonи динамически менятьсяdevк аргументу, переданному в CLI, к сожалению, это не работает согласованно в Windows и Linux, и из-за того, что порядок команд должен быть точным с CLI terraform, у меня нет вариантов.

Текущие сценарии, которые у меня есть в package.json:

      "tf-init-dev": "terraform -chdir=infrastructure init -backend-config=\"dev.hcl\"",
"tf-plan-dev": "terraform -chdir=infrastructure plan -backend-config=\"dev.hcl\"",
"tf-apply-dev": "terraform -chdir=infrastructure apply -backend-config=\"dev.hcl\"",
"tf-init-stage": "terraform -chdir=infrastructure init -backend-config=\"stage.hcl\"",
"tf-plan-stage": "terraform -chdir=infrastructure plan -backend-config=\"stage.hcl\"",
"tf-apply-stage": "terraform -chdir=infrastructure apply -backend-config=\"stage.hcl\"",
"tf-init-prod": "terraform -chdir=infrastructure init -backend-config=\"prod.hcl\"",
"tf-plan-prod": "terraform -chdir=infrastructure plan -backend-config=\"prod.hcl\"",
"tf-apply-prod": "terraform -chdir=infrastructure apply -backend-config=\"prod.hcl\"",

и я думаю, что буду добавлять более часто используемые по мере развития проекта.

Есть ли лучший способ решения этого варианта использования?

0 ответов