環境変数
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
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" }'