Я предполагаю, что вы начали работать с Terraform, и вы смотрите на то, что странно выглядящее государство-файл Terraform только что выводили, задавалось вопросом, если безопасно совершить файл в Git (или какой-то другой контроль источника)?
Ключ к пониманию террафора является понимание того, как управлять своим государством. Сегодня мы собираемся обсудить в Государственный файл и ответить на насущный вопрос: если вы должны совершить файл Terraform .tfstate в Git?
К концу этой статьи вы поймете, что такое государственный файл TF, почему террафом нуждается в этом, как вы можете управлять этим, и в конечном итоге вы должны принять его к Git (или нет!)
Краткий ответ на: «Должен ли я совершить государство террафора в Git?» нет.
Почему? Поскольку состояние террафора может содержать конфиденциальную информацию, которая не должна храниться в контроле источника. Кроме того, если Terraform выполняет в разных файлах состояния (то есть на двух отдельных машинах), он может сломать настройку вашей террафоры. Решение? Настройка терафора.
Хорошо — это (очень!) Краткий ответ, если вы в спешке. Но я предполагаю, что вам может быть интересно, почему это рекомендационная конфигурация и что такое плохо о комбинировании штата террафора в Git?
Погружение SOL ET глубже в деталях того, что государство террафора есть и почему вы действительно должны хранить его в бэкэнде и не совершать государства в Git.
Что такое государство террафора?
Государственный файл террафора
Итак, естественно, первый вопрос для нас, чтобы исследовать: что такое штат Террафом?
Проще говоря, Государство террафора Используется для сопоставления вашей реальной мировой инфраструктуры к ресурсам, которые вы определены в вашей конфигурации Terraform.
Файл состояния подлежит отслеживанию каких карт конфигурации ресурсов, к которым реальный мировой ресурс. Государство также хранит метаданные о тех ресурсах, таких как порядок зависимости для создания ресурсов.
В конечном итоге вы можете подумать о штате Террафом как просто большой массив JSON ваших ресурсов (потому что это в значительной степени, что это такое).
Хорошо, так что имеет смысл, но он все еще не отвечает на наш вопрос о том, почему мы не должны совершать этот файл для Git? Подумаешь?
Почему вы не должны совершать состояние в Git
Есть две основные причины, чтобы избежать совершения состояния в Git.
Давайте посмотрим на них …
1. Штат имеет конфиденциальную информацию
Сгенерированный файл состояния из террафора может в конечном итоге с ключами шифрования, а также пароли инфраструктуры в нем, которые не зашифрованы безопасно. Хранение паролей и т. Д. В простой тексте в репозитории плохая практика, любой, кто получает доступ к вашему репозитории, может получить эту конфиденциальную информацию.
2. Неправильное или несвежное состояние
Когда Terraform выполняется, он выполняется против файла состояния. Когда файлы состояния проверяются в Git, вы запускаете риск работы террафора против старого состояния. Например, если вы забудете потянуть последние изменения, файл состояния на вашем компьютере может отличаться для других членов команды.
Хорошо, так что ответы, почему мы не должны совершать государство в Git. Но это может оставить вам интересно: «Хорошо, так что если совершать файл государства не лучший вариант, что мне делать?». И ответ на этот вопрос: Terraform Brackens. Давайте посмотрим на то, что они есть и как они помогут нам …
Альтернатива местному состоянию: бредит
Configuration Configuration Backend
А Террафом Backend Это конфигурация, которую вы можете настроить, которая говорит террафом, где хранить свое состояние, а также управлять состояние блокировки (больше на это в мгновение!). Благодаря установке в бэкэнде состояние нажата в удаленное место и может быть доступна целой командой одновременно.
Однако эксплуатация террафона одновременно может привести к плохим результатам со многими машинами, управляющими файлом состояния одновременно. И именно поэтому большинство конфигураций Backenc также поддерживают «запирание». С блокировкой вы можете убедиться, что только один человек может запустить выполнения от файла состояния одновременно.
Брелки доступны в разных технологиях, таких как Azure и AWS. Как они работают над каждой реализацией, отличается, но функциональность остается прежней. Вы можете настроить бэкэкс с небольшим блоком кода, который добавляется в любой из ваших террафом .tf
файлы. Однако обычно он хранится в файле под названием backend.tf
Или просто в вашем main.tf.
Я уже хранил состояние в Git — помощь!?
Скопируйте локальное состояние террафора в удаленное состояние
Так что, если вы читаете эту статью, думаете: «О нет, но я уже совершил свое государство в Git, что мне делать? «Тогда не бойся, обмениваться конфигурацией на бэкэнд довольно простой процесс. Все, что вам нужно сделать, это следующее …
Настройка Terraporm Backend
- Добавить конфигурацию Backend — Выберите из разных конфигураций в вашем облачном провайдере.
- Беги
Terraform init
— Это подскажет террафору, чтобы проверить вашу конфигурацию своей бэкэндом. - Подтолкнуть состояние на свой бэкэнд — Террафор просит вас, хотите ли вы подталкивать свое локальное состояние на ваш недавно настроенный бэкэнд.
Для более всеобъемлющей пошаговой установки Terraform Backend оформить статью: Ultimate Terraform Workflow: настройка террафора (И удаленное состояние) С действиями GitHub
Терраформ: правильный путь!
Надеюсь, сегодняшняя статья помогла вам понять, о чем заключается в том, чтобы государство террафора есть, и почему вы не должны совершать его в Git. Когда вы получаете лучшее понимание того, что на самом деле есть государство Terraform, и почему это полезно работать с Terraform, начинает DemyStify, и вы понимаете, что это довольно простая технология.
Но независимо от того — теперь вы наступили ближе к получению всестороннего понимания террафора, понимая, в каком штате террафом является, почему это важно и о том, как решаются бренды, которые решают проблемы, представленные при совершении вашего файла TFstate в Git.
Говорите в ближайшее время облако коренного друга!
Пост Должны ли вы совершить файл террафора .tfstate в git? появился первым на DEV тренер Отказ
Лу — редактор Облако нативное программное обеспечение Инженерное рассылка Информационный бюллетень, посвященный в создании облачного программного обеспечения более доступен и легко понять. Каждые 2 недели вы получите дайджест наилучшего контента для облачных инженеров программного обеспечения прямо в вашем почтовом ящике.
Оригинал: «https://dev.to/loujaybee/should-you-commit-the-terraform-tfstate-file-to-git-5054»