Команда: apply
Команда tofu apply выполняет действия, предложенные в плане OpenTofu.
Использование
Использование: tofu apply [options] [plan file]
Автоматический режим планирования
Если запустить tofu apply без сохранённого файла плана, OpenTofu автоматически создаст новый план выполнения, как если бы вы запустили tofu plan, предложит подтвердить этот план и выполнит указанные действия. Для настройки создания плана в OpenTofu можно использовать все режимы планирования и параметры планирования.
Можно передать параметр -auto-approve, чтобы OpenTofu применил план без запроса подтверждения.
При использовании -auto-approve рекомендуется убедиться, что никто не может изменять вашу инфраструктуру вне рабочего процесса OpenTofu. Это снижает риск непредсказуемых изменений и расхождения конфигурации.
Режим сохранённого плана
Если передать сохранённый файл плана команде tofu apply, OpenTofu выполнит действия из сохранённого плана без запроса подтверждения. Этот двухэтапный рабочий процесс может быть полезен при автоматизации запуска OpenTofu.
Используйте tofu show, чтобы проверить сохранённый файл плана перед его применением.
При использовании сохранённого плана нельзя задавать дополнительные режимы или параметры планирования. Эти параметры влияют только на выбор действий OpenTofu, а в файле плана уже содержатся окончательные результаты такого выбора.
Эфемерные переменные
Поскольку эфемерные переменные нельзя сохранить в файле плана, все эфемерные переменные, заданные при создании файла плана с помощью tofu plan, необходимо также задать при запуске tofu apply.
Например, если для передачи эфемерной переменной token при создании файла плана (tofu plan -var "token=$MY_TOKEN") использовался параметр -var, тот же аргумент необходимо указать и для команды apply (tofu apply -var "token=$MY_TOKEN" planfile). Если необходимые эфемерные переменные не переданы команде apply, OpenTofu завершит работу и сообщит, какие дополнительные переменные нужно указать.
Параметры плана
Если файл плана не сохранён, tofu apply поддерживает все режимы и параметры планирования, доступные для tofu plan.
-
Режимы планирования: К ним относятся
-destroy, который создаёт план для уничтожения всех удалённых объектов, и-refresh-only, который создаёт план для обновления состояния OpenTofu и выходных значений корневого модуля. - Параметры планирования: К ним относятся указание экземпляров ресурсов, которые OpenTofu следует заменить, задание входных переменных OpenTofu и т. д.
Параметры apply
Следующие параметры изменяют способ выполнения команды apply и отображения сведений о её выполнении.
-
-auto-approve— пропускает интерактивное подтверждение плана перед его применением. Этот параметр игнорируется, если передан ранее сохранённый файл плана: OpenTofu считает сам факт передачи файла подтверждением и в этом случае не запрашивает его. -
-compact-warnings— отображает предупреждения в компактном виде, содержащем только сводные сообщения, если только предупреждения не сопровождаются хотя бы одной ошибкой: в этом случае их текст может быть полезен для понимания ошибок. -
-consolidate-warnings=false— если OpenTofu выдаёт предупреждения, группировка не выполняется. Будут перечислены все места, к которым относятся предупреждения. Включено по умолчанию. -
-consolidate-errors— если OpenTofu выдаёт ошибки, попытаться объединить похожие сообщения в один элемент. -
-input=false— отключает все интерактивные запросы OpenTofu. Обратите внимание: это также запрещает OpenTofu запрашивать интерактивное подтверждение плана, поэтому OpenTofu будет исходить из того, что вы не хотите применять план, и операция завершится с ошибкой. -
-json— включает вывод машиночитаемого интерфейса JSON. При этом подразумевается-input=false, поэтому для продолжения в конфигурации не должно быть неуказанных значений переменных. Чтобы включить этот флаг, также необходимо включить флаг-auto-approveили указать ранее сохранённый план. -
-lock=false— не блокировать состояние на время выполнения операции. Это опасно, если другие пользователи могут одновременно выполнять команды в той же рабочей области. -
-lock-timeout=DURATION— если блокировка не отключена с помощью-lock=false, указывает OpenTofu повторять попытки получить блокировку в течение заданного периода времени, прежде чем вернуть ошибку. Длительность задаётся числом и буквой единицы времени, например "3s" означает три секунды. -
-no-color— отключает последовательности форматирования терминала в выводе. Используйте этот параметр, если запускаете OpenTofu в контексте, где вывод отображается системой, не поддерживающей форматирование терминала. -
-concise— отключает сообщения о ходе выполнения. -
-parallelism=n— ограничивает количество параллельных операций при обходе графа OpenTofu. Значение по умолчанию — 10. -
-var 'foo=bar'— задаёт переменную в конфигурации OpenTofu. Этот флаг можно указывать несколько раз. -
-var-file=foo— задаёт переменные в конфигурации OpenTofu из файла. Если присутствуют файлы "terraform.tfvars" или ".auto.tfvars", они будут загружены автоматически. -
-show-sensitive— если указан, конфиденциальные значения не будут скрываться в выводе интерфейса. -
-deprecation— указывает тип отображаемых предупреждений. Допустимые значения: "module:all", "module:local", "module:none". Значение по умолчанию: module:all. При выборе "module:all" OpenTofu будет отображать предупреждения об устаревании для всех модулей. При выборе "module:local" предупреждения будут отображаться только для модулей, подключённых с помощью относительного пути. При выборе "module:none" все предупреждения об устаревании будут скрыты. -
Все режимы планирования и параметры планирования для
tofu plan— настройка создания плана в OpenTofu. Доступно только при запускеtofu applyбез сохранённого файла плана.
Для конфигураций, использующих только бэкенд local, команда tofu apply также принимает устаревшие параметры -state, -state-out и -backup.
Переменные среды
Дополнительно настроить поведение команды apply можно с помощью переменных среды. Например, переменная среды TF_STATE_PERSIST_INTERVAL позволяет задать интервал между сохранениями состояния.
Указание другого каталога конфигурации
Если ваш рабочий процесс предполагает переопределение каталога корневого модуля, используйте вместо этого глобальный параметр -chdir. Он действует для всех команд и обеспечивает единообразный поиск OpenTofu в указанном каталоге всех файлов, которые обычно считываются или записываются в текущем рабочем каталоге.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/cli/commands/apply/