- コマンドライン
- 基本的な CLI 機能
- コマンド: state
- コマンド: state push
コマンド: state push
tofu state push
コマンドは、ローカルのステートファイルを リモートステートに手動でアップロードするために使用します。このコマンドはローカルステートでも動作します。
このコマンドは、まれにしか使用すべきではありません。これは、リモートステートで手動介入が必要な場合にのみ、ユーティリティとして使用することを目的としています。
使用方法
使用法: tofu state push [オプション] PATH
このコマンドは、PATH で指定されたステートを、現在構成されている バックエンドにプッシュします。
PATH が "-" の場合、プッシュするステートデータは stdin から読み込まれます。このデータは完全にメモリにロードされ、宛先ステートに書き込まれる前に検証されます。
OpenTofu ステートファイルは、バイトオーダーマーク (BOM) なしの UTF-8 形式である必要があります。Windows の PowerShell の場合は、Set-Content
を使用して、ファイルを UTF-8 形式で自動的にエンコードします。たとえば、tofu state push | sc terraform.tfstate
を実行します。
OpenTofu は、安全ではないと思われる変更を行うことを防ぐために、いくつかの安全チェックを実行します。
-
異なるリネージ: ステートの「リネージ」の値が異なる場合、OpenTofu はステートのプッシュを許可しません。異なるリネージは、ステートが完全に異なり、データを失う可能性があることを示唆しています。
-
リモートシリアルが高い: 宛先ステートの「シリアル」値がプッシュされるステートよりも高い場合、OpenTofu はプッシュを防止します。高いシリアルは、プッシュされるローカルステートで考慮されていないデータが宛先ステートにあることを示唆しています。
これらの安全チェックはどちらも、-force
フラグで無効にできます。これは推奨されません。 安全チェックを無効にしてステートをプッシュすると、宛先ステートが上書きされます。
cloud
バックエンドまたはremote
バックエンドを使用する構成の場合のみ、tofu state push
はオプションの -ignore-remote-version
も受け入れます。
モジュールソース、バックエンド構成、または 暗号化ブロックで変数を使用するには、tofu state push
を実行するときに ルートモジュール変数に値を割り当てる必要があります。
このコマンドは、tofu state push に対して次のオプションも受け入れます。
-
-lock=false
- 操作中にステートロックを保持しません。これは、他の人が同じワークスペースに対して同時にコマンドを実行する可能性がある場合は危険です。 -
-lock-timeout=DURATION
--lock=false
でロックが無効になっていない限り、OpenTofu に、エラーを返す前に、指定された時間ロックの取得を再試行するように指示します。期間の構文は、数字の後に時間単位の文字 (3 秒の場合は "3s" など) が続きます。 -
-var 'NAME=VALUE'
- 設定ファイルのルートモジュールで宣言された単一の入力変数の値を設定します。複数の変数を設定するには、このオプションを複数回使用します。詳細については、コマンドラインでの入力変数を参照してください。 -
-var-file=FILENAME
- "tfvars"ファイルからの定義を使用して、設定ファイルのルートモジュールで宣言された多数の入力変数の値を設定します。複数のファイルから値を含めるには、このオプションを複数回使用します。
-var
および-var-file
オプション以外にも、ルートモジュール内の入力変数の値を設定する方法がいくつかあります。詳細については、ルートモジュール変数への値の割り当てを参照してください。