メインコンテンツへスキップ

コマンド: state push

tofu state push コマンドは、ローカルのステートファイルを リモートステートに手動でアップロードするために使用します。このコマンドはローカルステートでも動作します。

このコマンドは、まれにしか使用すべきではありません。これは、リモートステートで手動介入が必要な場合にのみ、ユーティリティとして使用することを目的としています。

使用方法

使用法: tofu state push [オプション] PATH

このコマンドは、PATH で指定されたステートを、現在構成されている バックエンドにプッシュします。

PATH が "-" の場合、プッシュするステートデータは stdin から読み込まれます。このデータは完全にメモリにロードされ、宛先ステートに書き込まれる前に検証されます。

OpenTofu は、安全ではないと思われる変更を行うことを防ぐために、いくつかの安全チェックを実行します。

  • 異なるリネージ: ステートの「リネージ」の値が異なる場合、OpenTofu はステートのプッシュを許可しません。異なるリネージは、ステートが完全に異なり、データを失う可能性があることを示唆しています。

  • リモートシリアルが高い: 宛先ステートの「シリアル」値がプッシュされるステートよりも高い場合、OpenTofu はプッシュを防止します。高いシリアルは、プッシュされるローカルステートで考慮されていないデータが宛先ステートにあることを示唆しています。

これらの安全チェックはどちらも、-force フラグで無効にできます。これは推奨されません。 安全チェックを無効にしてステートをプッシュすると、宛先ステートが上書きされます。

cloud バックエンドまたはremote バックエンドを使用する構成の場合のみ、tofu state push はオプションの -ignore-remote-version も受け入れます。

このコマンドは、tofu state push に対して次のオプションも受け入れます。

  • -lock=false - 操作中にステートロックを保持しません。これは、他の人が同じワークスペースに対して同時にコマンドを実行する可能性がある場合は危険です。

  • -lock-timeout=DURATION - -lock=false でロックが無効になっていない限り、OpenTofu に、エラーを返す前に、指定された時間ロックの取得を再試行するように指示します。期間の構文は、数字の後に時間単位の文字 (3 秒の場合は "3s" など) が続きます。

  • ignore-remote-version.

  • -var 'NAME=VALUE' - 設定ファイルのルートモジュールで宣言された単一の入力変数の値を設定します。複数の変数を設定するには、このオプションを複数回使用します。詳細については、コマンドラインでの入力変数を参照してください。

  • -var-file=FILENAME - "tfvars"ファイルからの定義を使用して、設定ファイルのルートモジュールで宣言された多数の入力変数の値を設定します。複数のファイルから値を含めるには、このオプションを複数回使用します。

-varおよび-var-fileオプション以外にも、ルートモジュール内の入力変数の値を設定する方法がいくつかあります。詳細については、ルートモジュール変数への値の割り当てを参照してください。