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

環境変数

OpenTofu は、その動作のさまざまな側面をカスタマイズするために、多くの環境変数を参照します。これらの環境変数は、OpenTofu の使用時に必須ではありませんが、異常な状況で OpenTofu のデフォルトの動作を変更したり、デバッグのために出力の冗長性を高めたりするために使用できます。

TF_LOG

デバッグに役立つ詳細なログを stderr に表示できるようにします。例:

コードブロック
export TF_LOG=trace

無効にするには、設定を解除するか、offに設定します。例:

コードブロック
export TF_LOG=off

OpenTofuのデバッグの詳細については、デバッグに関するセクションをご覧ください。

TF_LOG_PATH

これは、ログの出力先を指定します。TF_LOG_PATHが設定されている場合でも、ログを有効にするにはTF_LOGを設定する必要があることに注意してください。たとえば、現在 tofu を実行しているディレクトリに常にログを書き込むには

コードブロック
export TF_LOG_PATH=./terraform.log

OpenTofuのデバッグの詳細については、デバッグに関するセクションをご覧ください。

TF_INPUT

"false" または "0" に設定すると、tofu コマンドは、-input=false フラグが指定されたかのように動作します。これは、値が指定されていない変数のプロンプトを無効にする場合に役立ちます。例:

コードブロック
export TF_INPUT=0

TF_VAR_name

環境変数を使用して変数を設定できます。環境変数はTF_VAR_name形式でなければならず、値は最後にチェックされます。例:

コードブロック
export TF_VAR_region=us-west-1
export TF_VAR_ami=ami-049d8641
export TF_VAR_alist='[1,2,3]'
export TF_VAR_amap='{ foo = "bar", baz = "qux" }'

コンテキストでの TF_VAR_name の使用法の詳細については、変数構成に関するセクションをご覧ください。

TF_CLI_ARGS および TF_CLI_ARGS_name

TF_CLI_ARGS の値は、コマンドラインに追加の引数を指定します。これにより、CI 環境での自動化が容易になるだけでなく、自分のシステムでの OpenTofu のデフォルトの動作を変更することもできます。

これらの引数は、サブコマンド (plan など) の直後、およびコマンドラインで直接指定されたフラグのに直接挿入されます。この動作により、コマンドラインのフラグが環境変数よりも優先されることが保証されます。

たとえば、次のコマンド:TF_CLI_ARGS="-input=false" tofu apply -force は、手動で入力する場合:tofu apply -input=false -force と同等です。

フラグ TF_CLI_ARGS は、すべての OpenTofu コマンドに影響します。TF_CLI_ARGS_name の形式で名前付きコマンドを指定すると、そのコマンドのみに影響します。たとえば、計画のみを絶対に更新しないように指定するには、TF_CLI_ARGS_plan="-refresh=false" を設定できます。

フラグの値は、シェルに直接入力した場合と同じように解析されます。二重引用符と一重引用符を使用して文字列をキャプチャでき、引数はそれ以外の場合はスペースで区切られます。

TF_DATA_DIR

TF_DATA_DIR は、OpenTofu が現在のバックエンド構成などの作業ディレクトリごとのデータを保存する場所を変更します。

デフォルトでは、このデータは現在のディレクトリの .terraform サブディレクトリに書き込まれますが、TF_DATA_DIR で指定されたパスが空でない場合は、代わりにそのパスが使用されます。

ほとんどの場合、この変数を設定する必要はありませんが、たとえば作業ディレクトリが書き込み可能でない場合に設定すると役立つ場合があります。

データディレクトリは、あるコマンドから次のコマンドまで永続化する必要があるデータを保持するために使用されるため、すべての OpenTofu ワークフローコマンド(tofu initから開始)全体でこの変数を一貫して設定することが重要です。そうしないと、OpenTofu がプロバイダー、モジュール、その他のアーティファクトを見つけられない可能性があります。

TF_WORKSPACE

マルチ環境展開の場合、ワークスペースを選択するために、tofu workspace select your_workspace を実行する代わりに、この環境変数を使用できます。TF_WORKSPACE を使用すると、ワークスペースの選択が許可され、オーバーライドされます。

例:

コードブロック
export TF_WORKSPACE=your_workspace

この環境変数は、ローカルシェル環境で変数が設定されているのを忘れて、誤った状態に変更を適用するのが簡単になる可能性があるため、非対話型で使用する場合のみ推奨されます。

ワークスペースの詳細については、ワークスペースの使用に関するセクションをご覧ください。

TF_IN_AUTOMATION

TF_IN_AUTOMATION が空でない値に設定されている場合、OpenTofu は、次に実行する具体的なコマンドを提案しないように出力を調整します。これにより、CI システムや他のラッパーアプリケーションのように、ユーザーが OpenTofu コマンドを直接実行しないワークフローにおいて、出力の一貫性が向上し、混乱が少なくなります。

これは OpenTofu の人間が読める出力に対する純粋な外観上の変更であり、正確な出力の差異は OpenTofu のマイナーバージョン間で変更される可能性があります。

TF_REGISTRY_DISCOVERY_RETRY

TF_REGISTRY_DISCOVERY_RETRY を設定して、リモートレジストリクライアントがクライアント接続エラーまたは再試行しても安全な 500 範囲のレスポンスに対して試行するリクエストの最大再試行回数を構成します。

TF_REGISTRY_CLIENT_TIMEOUT

リモートレジストリへのリクエストのデフォルトクライアントタイムアウトは 10 秒です。TF_REGISTRY_CLIENT_TIMEOUT は、例外的な状況下で構成および増加させることができます。

コードブロック
export TF_REGISTRY_CLIENT_TIMEOUT=15

TF_CLI_CONFIG_FILE

OpenTofu CLI 構成ファイルの場所。

コードブロック
export TF_CLI_CONFIG_FILE="$HOME/.tofurc-custom"

TF_PLUGIN_CACHE_DIR

TF_PLUGIN_CACHE_DIR 環境変数は、CLI 構成の plugin_cache_dir 設定を設定する代替方法です。

また、TF_PLUGIN_CACHE_MAY_BREAK_DEPENDENCY_LOCK_FILE を使用して、移行互換性設定 plugin_cache_may_break_dependency_lock_file を有効にできます。

TF_IGNORE

TF_IGNORE が "trace" に設定されている場合、OpenTofu は無視されたファイルとフォルダを表示するデバッグメッセージを出力します。これは、.terraformignore ファイルを持つ大規模なリポジトリをデバッグするときに役立ちます。

コードブロック
export TF_IGNORE=trace

TF_PROVIDER_DOWNLOAD_RETRY

TF_PROVIDER_DOWNLOAD_RETRY を設定して、リモートプロバイダークライアントがクライアント接続エラーまたは再試行しても安全な 500 範囲のレスポンスに対して試行するリクエストの最大再試行回数を構成します。

コードブロック
export TF_PROVIDER_DOWNLOAD_RETRY=3

.terraformignore の詳細については、.terraformignore を使用したアップロードからのファイルの除外を参照してください。

TF_STATE_PERSIST_INTERVAL

TF_STATE_PERSIST_INTERVAL を設定して、状態の永続化の間隔(秒単位)を構成します。間隔を大きくすると、クラウドサービスへのアップロードにかなりの時間がかかる可能性のある大規模な状態(> 10 万リソース)を扱う場合に役立つ可能性があります。デフォルトの永続化間隔は 20 秒です(このパラメータの最小値でもあります)。次のコマンドは、永続化間隔を 5 分 (300 秒) に設定します。

コードブロック
export TF_STATE_PERSIST_INTERVAL=300

クラウドバックエンド CLI 統合

クラウドバックエンドとの CLI 統合により、コマンドラインでそれらを使用できます。統合には、OpenTofu 構成に cloud ブロックを含める必要があります。その引数を構成ファイルで直接定義するか、環境変数を通じて指定できます。これは、継続的インテグレーション (CI) のような非対話型ワークフローに役立ちます。

cloud ブロックの環境変数の完全なリストについては、クラウドバックエンド設定を参照してください。

TF_ENCRYPTION

TF_ENCRYPTION 環境変数は、terraform { encryption {} } ブロックの内容を指定する別の方法です。指定されている場合、HCL または JSON のいずれかとして解析され、.tf 構成ファイルに存在する構成を上書きします。

コードブロック
# Add/Override encryption key_provider.static.mykp
export TF_ENCRYPTION='key_provider "static" "mykp" { key = "6f6f706830656f67686f6834616872756f3751756165686565796f6f72653169" }'