Средства защиты Terraform

У меня уже есть десятки экземпляров AWS, работающих в производственной среде, и я хотел бы начать использовать Terraform для автоматизации создания следующих. Я читал, что Terraform может помочь в отработке неизменяемого паттерна. Однако я бы хотел избежать риска уничтожения уже запущенного экземпляра. Предоставляет ли Terraform какую-либо защиту, чтобы избежать этого?

1
задан 22 February 2018 в 22:54
3 ответа

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

1
ответ дан 3 December 2019 в 18:28

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

Обычно каждый ресурс Terraform имеет некоторый первичный идентификатор (например, для EC2 - идентификатор экземпляра, для S3 - имя корзины). И каждый запуск Terraform должен только а) создавать новые ресурсы или б) обновлять / удалять существующие ресурсы под управлением Terraform.

  • В случае а) если идентификатор уже существует, вы получите сообщение об ошибке, и Terraform не может ничего создать (никогда не произойдет с EC2, но возможно с ковшами S3). Это возможность исправить код Terraform.

  • В случае б) Terraform должен работать только с «собственными» ресурсами, оставляя существующее содержимое вашей учетной записи в покое.

Можно намеренно (или случайно) вмешаться в Terraform. заменяя / переименовывая его ресурсы, это сломает вещи; но при "нормальном" использовании я никогда не встречал подобных проблем.

1
ответ дан 3 December 2019 в 18:28

Вы можете добавить блок конфигурации жизненного цикла к ресурсу ( См. Конфигурация ресурса Terraform ); в частности, используя:

lifecycle {
    prevent_destroy = true
}

Это вернет сообщение об ошибке, если план включает действие уничтожения ресурса.

1
ответ дан 3 December 2019 в 18:28

Теги

Похожие вопросы