web-dev-qa-db-ja.com

別のフォルダからterraforminitを実行するにはどうすればよいですか?

CI/CDの目的でテラフォームをスクリプト化したいのですが、スクリプトでのCDは好きではなく、特定のパスがあります。

私は試した terraform init c:\my\folder\containing\tf-file

しかし、それを実行すると、.terraformフォルダーがcwdに配置されます。

7
red888

デフォルトでは、terraform initは、作業ディレクトリにすでに構成が含まれていると想定し、その構成の初期化を試みます。

オプションで、initは-from-module = MODULE-SOURCEオプションを使用して空のディレクトリに対して実行できます。この場合、他の初期化手順が実行される前に、指定されたモジュールがターゲットディレクトリにコピーされます。

https://www.terraform.io/docs/commands/init.html

0
strongjz

Terraforminitコマンドの[DIR]オプションは、tfファイルの処理元をterraformに指示しますが、状態ファイルの保存場所は指示しません。保存されるローカルパス状態ファイルを変更する場合は、main.tfにセクションを追加して、バックエンドパスを構成します。

terraform {
  backend "local" {
    path = "relative/path/to/terraform.tfstate"
  }
}

私は実際にこれを試していませんが、コマンドラインから次のようにパスを渡すことができる場合があります。

-backend-config="path=/foo"
3
RaGe