Я определил удаленный бэкэнд для управления tfstate с помощью Swift.
terraform {
backend "swift" {
container = "example"
}
}
После запуска terraform init иногда появляется следующая ошибка:
Do you want to copy existing state to the new backend?
Pre-existing state was found while migrating the previous "swift" backend to the
newly configured "swift" backend. An existing non-empty state already exists in
the new backend. The two states have been saved to temporary files that will be
removed after responding to this query.
Previous (type "swift"): /tmp/terraform704677678/1-swift.tfstate
New (type "swift"): /tmp/terraform704677678/2-swift.tfstate
Do you want to overwrite the state in the new backend with the previous state?
Enter "yes" to copy and "no" to start with the existing state in the newly
configured "swift" backend.
Enter a value:
Это действительно затрудняет автоматизацию запуска Terraform из-за необходимости неожиданного ввода.
Мне нужно, чтобы Ansible работал только с удаленным tfstate, сохраненным в контейнере, и без локальных файлов.
После завершения задачи инициализации terraform файл / tmp / terraform * отсутствует.
Заранее благодарим за помощь.
Похоже, вы работаете с двумя файлами состояний. Если вы уверены, что сейчас он пытается использовать правильный, вы можете сказать «да» и попросить его скопировать старое состояние в новое, тогда эта ошибка больше не появится.
Проблема исправлена в следующей версии провайдера OpenStack.