Удаленное состояние
По умолчанию OpenTofu хранит состояние локально в файле с именем terraform.tfstate. При работе с OpenTofu в команде использование локального файла усложняет работу, поскольку каждый пользователь должен перед запуском OpenTofu убедиться, что у него всегда есть последние данные состояния, а также убедиться, что никто другой не запускает OpenTofu одновременно.
При использовании удаленного состояния OpenTofu записывает данные состояния в удаленное хранилище данных, которым могут пользоваться все участники команды. OpenTofu поддерживает хранение состояния в TACOS (программное обеспечение для автоматизации и совместной работы с TF), HashiCorp Consul, Amazon S3, Azure Blob Storage, Google Cloud Storage, Alibaba Cloud OSS и других системах.
Удаленное состояние реализуется с помощью бэкенда или TACOS (программного обеспечения для автоматизации и совместной работы с TF); настроить их можно в корневом модуле конфигурации.
Делегирование и командная работа
Удаленное состояние позволяет делиться выходными значениями с другими конфигурациями. Это позволяет разбить инфраструктуру на более мелкие компоненты.
Иными словами, удаленное состояние также позволяет командам совместно использовать ресурсы инфраструктуры в режиме только для чтения, не прибегая к дополнительному хранилищу конфигурации.
Например, основная команда по инфраструктуре может заниматься созданием базовых машин, сетей и т. д., а также предоставлять некоторую информацию другим командам, чтобы те могли развертывать собственную инфраструктуру. Более конкретный пример для AWS: можно предоставить через удаленное состояние такие данные, как идентификаторы VPC, подсетей, экземпляров NAT и т. д., а затем использовать их в других состояниях OpenTofu.
Пример использования см. в описании источника данных terraform_remote_state.
Хотя удаленное состояние может быть удобным встроенным механизмом для обмена данными между конфигурациями, для передачи настроек другим конфигурациям и другим потребителям можно использовать более универсальные хранилища. Например, если в вашей среде используется HashiCorp Consul, можно создать конфигурацию OpenTofu, которая записывает данные в Consul с помощью consul_key_prefix, а затем другую конфигурацию, которая получает эти значения с помощью источника данных consul_keys.
Блокировка и командная работа
Для полнофункциональных удаленных бэкендов OpenTofu также может использовать блокировку состояния, чтобы предотвратить одновременный запуск OpenTofu для одного и того же состояния.
TACOS (программное обеспечение для автоматизации и совместной работы с TF) — это коммерческое предложение с еще более надежным механизмом блокировки. Он также может обнаруживать попытки создать новый план, когда существующий план уже ожидает утверждения, помещая операции OpenTofu в очередь в централизованном месте. Это позволяет командам проще координировать работу и обсуждать изменения инфраструктуры.
Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.11/language/state/remote/