コマンド: untaint
OpenTofuは、オブジェクトが破損している可能性があり、将来のOpenTofuプランで置き換える必要があることを追跡するために、「taint(汚染)」と呼ばれるマーカーを使用します。
OpenTofuは、複数ステップの「作成」アクション中にエラーが発生した場合、オブジェクトが完全に機能する状態で残っていることを確認できないため、オブジェクトに自動的に「taint」のマークを付けます。
廃止されたコマンド`tofu taint`を使用して、オブジェクトを手動で「taint」としてマークすることもできますが、このワークフローは推奨されなくなりました。
OpenTofuが現在特定のオブジェクトを汚染されていると見なしているが、実際には正しく機能しており、置き換える必要がないと判断した場合は、`tofu untaint`を使用して、そのオブジェクトから汚染マーカーを削除できます。
このコマンドは、実際のリモートオブジェクトを変更するのではなく、汚染された状態を削除するために状態を変更します。
オブジェクトから汚染マーカーを削除したが、後でオブジェクトが劣化していたことが判明した場合は、オブジェクトを再汚染することなく、次のようなコマンドを使用して、オブジェクトを置き換えるプランを作成して適用できます。
tofu apply -replace="aws_instance.example[0]"
使用方法
使用方法: `tofu untaint [オプション] アドレス`
`address`引数は、現在汚染されている特定のリソースインスタンスを識別するリソースアドレスです。
モジュールソース、バックエンド設定、または暗号化ブロックで変数を使用するには、`tofu untaint`を実行するときにルートモジュール変数に値を割り当てる必要があります。
このコマンドは、次のオプションも受け入れます。
-
`-allow-missing` - 指定した場合、リソースが見つからない場合でもコマンドは成功します(終了コード0)。状態の読み取りまたは書き込みに問題がある場合など、コマンドは他の状況でエラーを返す可能性があります。
-
`-lock=false` - 操作中に状態ロックを保持しません。これは、他のユーザーが同じワークスペースに対してコマンドを同時に実行する可能性がある場合に危険です。
-
`-lock-timeout=DURATION` - `-lock=false`でロックが無効になっていない限り、エラーを返す前に、OpenTofuに一定期間ロックの取得を再試行するように指示します。期間の構文は、数字の後に時間単位の文字が続きます。たとえば、「3秒」の場合は「3s」です。
-
`-no-color` - 出力内の端末フォーマットシーケンスを無効にします。OpenTofuの出力が端末フォーマットを解釈できないシステムによってレンダリングされるコンテキストでOpenTofuを実行している場合は、これを使用してください。
-
`-var 'NAME=VALUE'` - 設定のルートモジュールで宣言された単一の入力変数の値を設定します。複数の変数を設定するには、このオプションを複数回使用します。詳細については、コマンドラインでの入力変数を参照してください。
-
`-var-file=FILENAME` - 「tfvars」ファイルの定義を使用して、設定のルートモジュールで宣言された可能性のある多くの入力変数の値を設定します。複数のファイルから値を含めるには、このオプションを複数回使用します。
`-var`および`-var-file`オプション以外にも、ルートモジュールに入力変数の値を設定する方法はいくつかあります。詳細については、ルートモジュール変数への値の割り当てを参照してください。
`cloud`バックエンドまたは`remote`バックエンドを使用する構成の場合のみ、`tofu untaint`はオプション`-ignore-remote-version`も受け入れます。
`local`バックエンドを使用する構成の場合のみ、`tofu untaint`は従来のオプション`-state`、`-state-out`、および`-backup`も受け入れます。