- OpenTofu言語
- OpenTofu設定
- バックエンド
- local
バックエンドタイプ: local
種類: 拡張
ローカルバックエンドは、状態をローカルファイルシステムに保存し、システムAPIを使用してその状態をロックし、ローカルで操作を実行します。
設定例
terraform {
backend "local" {
path = "relative/path/to/terraform.tfstate"
}
}
データソース設定
data "terraform_remote_state" "foo" {
backend = "local"
config = {
path = "${path.module}/../../terraform.tfstate"
}
}
設定変数
サポートされている設定オプションは以下のとおりです。
path
- (オプション)tfstate
ファイルへのパス。デフォルトでは、ルートモジュールを基準とした"terraform.tfstate"になります。workspace_dir
- (オプション) デフォルト以外のワークスペースへのパス。
コマンドライン引数
このセクションでは、後方互換性のために保持されていますが、推奨されないレガシー機能について説明します。詳細については、以下を参照してください。
backend "local"
ブロックを含む設定、またはバックエンドを指定せずにローカルバックエンドをデフォルトとする設定の場合、バックエンドから状態スナップショットを読み書きするほとんどのコマンドは、以下の追加引数を受け付けます。
-
-state=FILENAME
- 以前の状態スナップショットを読み込む際の、状態ファイル名を上書きします。 -
-state-out=FILENAME
- 新しい状態スナップショットを書き込む際の、状態ファイル名を上書きします。-state-out
を使用せずに-state
を使用する場合、OpenTofuは-state
と-state-out
の両方に-state
ファイル名を使用します。つまり、新しい状態スナップショットを作成した場合、入力ファイルが上書きされます。 -
-backup=FILENAME
- ローカルバックエンドが新しい状態を書き込む際に、通常は動的に選択するバックアップファイルの作成用のデフォルトのファイル名を上書きします。-backup
を使用せずに-state
を使用する場合、OpenTofuはバックアップファイル名生成のファイル名プレフィックスとして-state
ファイル名を使用します。バックアップファイルの作成を完全に無効にするには、-backup=-
(つまり、ファイル名をASCIIのダッシュ文字に設定)を使用できます。
これら3つのオプションは、組み込みのリモート状態が導入される以前のワークフローとの後方互換性のために保持されています。そのワークフローでは、ユーザーはOpenTofuを実行する前に以前の状態を取得し、OpenTofuの終了後に新しい状態を保存するラッパースクリプトを記述していました。その場合、これら3つの引数は通常、1つの操作のためにのみ使用される一時ディレクトリ内のパスになります。
これらの古いワークフローは、複数のワークスペースの可能性が導入される前に存在していたため、これらを設定すると、選択されたワークスペースに基づいて異なる状態ファイル名を選択するというOpenTofuの通常の動作が上書きされます。これらの3つのオプションをすべて使用する場合、選択されたワークスペースはOpenTofuが状態ファイルに選択するファイル名に影響を与えず、ワークスペースの状態ファイルを互いに区別したい場合は、自分で異なるファイル名を選択する必要があります。
これらの3つのオプションは、異なるバックエンドタイプが選択されている設定には影響しません。
自動化でOpenTofuを実行する場合でも、新しいシステムではこれらのオプションの使用はお勧めしません。代わりに、リモート状態をサポートする別のバックエンドを選択し、ルートモジュール内で設定します。これにより、設定に関わっている全員が、特別なコマンドラインオプションを使用せずに、正しい共有場所に状態を自動的に取得および保存できるようになります。