Spec-Zone.ru › OpenTofu 1.9

Состояние

OpenTofu должен хранить сведения об управляемой инфраструктуре и конфигурации. OpenTofu использует это состояние, чтобы сопоставлять реальные ресурсы с конфигурацией, отслеживать метаданные и повышать производительность при работе с крупной инфраструктурой.

По умолчанию это состояние хранится в локальном файле с именем "terraform.tfstate", но мы рекомендуем хранить его в TACOS (программном обеспечении для автоматизации и совместной работы с Terraform), чтобы обеспечивать версионирование, шифрование и безопасный обмен состоянием с командой.

OpenTofu использует состояние, чтобы определять, какие изменения нужно внести в инфраструктуру. Перед выполнением любой операции OpenTofu выполняет обновление, чтобы актуализировать состояние в соответствии с реальной инфраструктурой.

Основное назначение состояния OpenTofu — хранить привязки между объектами в удалённой системе и экземплярами ресурсов, объявленными в конфигурации. Когда OpenTofu создаёт удалённый объект в ответ на изменение конфигурации, он записывает идентификатор этого удалённого объекта для определённого экземпляра ресурса, а затем может обновить или удалить этот объект в ответ на будущие изменения конфигурации.

Подробнее о том, зачем OpenTofu требуется состояние и почему OpenTofu не может работать без него, см. на странице назначение состояния.

Просмотр и изменение​

Хотя файлы состояния имеют формат JSON, редактировать их напрямую не рекомендуется. OpenTofu предоставляет команду tofu state для выполнения основных изменений состояния с помощью CLI.

Использование CLI и вывод команд состояния организованы так, чтобы с ними было удобно работать в Unix-инструментах, таких как grep, awk и т. д. Кроме того, CLI избавляет пользователей от необходимости учитывать изменения формата самого состояния. Проект OpenTofu будет поддерживать работу CLI, даже если формат состояния под ним изменится.

OpenTofu предполагает соответствие один к одному между настроенными экземплярами ресурсов и удалёнными объектами. Обычно это гарантируется тем, что OpenTofu сам создаёт каждый объект и записывает его идентификатор в состояние либо уничтожает объект, а затем удаляет его привязку.

Если добавлять или удалять привязки в состоянии другими способами — например, импортировать внешние объекты с помощью tofu import или попросить OpenTofu «забыть» существующий объект с помощью tofu state rm, — необходимо самостоятельно следить за соблюдением этого правила соответствия один к одному. Например, можно вручную удалить объект, который вы попросили OpenTofu «забыть», или повторно импортировать его, чтобы привязать к другому экземпляру ресурса.

Формат​

Снимки состояния хранятся в формате JSON, и новые версии OpenTofu, как правило, обратно совместимы со снимками состояния, созданными в предыдущих версиях. Однако формат состояния может меняться в новых версиях OpenTofu, поэтому, если вы создаёте программное обеспечение, которое напрямую анализирует или изменяет его, будьте готовы постоянно поддерживать это ПО по мере развития формата состояния в новых версиях.

Кроме того, есть несколько способов интеграции, которые формируют вывод в JSON, специально предназначенный для использования внешним программным обеспечением:

  • Команда tofu output поддерживает параметр -json, позволяющий получить полный набор выходных значений корневого модуля или конкретное именованное выходное значение из последнего снимка состояния.
  • Команда tofu show поддерживает параметр -json для просмотра последнего снимка состояния целиком, а также сохранённых файлов плана, содержащих копию состояния на момент создания плана.

Если OpenTofu запускается в рамках автоматизации, обычно эти команды выполняют сразу после успешного выполнения tofu apply, чтобы получить представление последнего снимка состояния. Затем результат сохраняют как артефакт, связанный с автоматизированным запуском, чтобы другое программное обеспечение могло использовать его без необходимости запускать сам OpenTofu.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.9/language/state/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API