Четвертое тело

November 23, 2016

Одна из проблем терраформа, как я писал, заключается в том, что вы работаете с тремя сущностями:

  • tf-скрипты — это то, что вы хотите видеть;
  • файл состояния — это то, как выглядит инфраструктура по мнению Terraform;
  • реальное состояние дел — как на самом деле выглядит инфраструктура.

Как небесной механике задача трех тел в аналитическом виде не решается, так и терраформ со своими тремя сущностями оставляет повод для беспокойства, а что если кто-то ручками заведет сервер или dns-запись? Не со злобы, а просто так вышло. Этот сервер или эта запись не попадет в состояния терраформа. Раздражает.

Чтобы вернуть себе полное чувство контроля над инфра, я ввел в систему четвертую сущность - написал специальный руби-скрипт (99% проблем в жизни решается специальным руби-скриптом кстати :smile:), который запускаю ручками время от времени. Этот скрипт скачивает все DNS-записи, полную структуру опенстека (сети, диски, сервера) и сравнивает результат с файлами состояния. Если различий нет, то значит, каждый объект управляется терраформом и соответственно лежит в красивом виде в репозитарии as a code. Это очень приятно осознавать.

comments powered by Disqus