Если вы только что начали работать с Terraform, вы можете получить это знакомое чувство в глубине своего ума: « Я делаю это правильно? «.
Сегодня мы собираемся решать ваши ногими чувствами, обсудив все важные лучшие практики для террафора, так что у вас есть уверенность в полном пар с вашим проектом.
К концу этой статьи вы поймете 10 лучших практик, чтобы следовать при внедрении террафора.
Лучшие практики террафора (в резюме)
Если вы искали быстрый контрольный список в лучших практиках, здесь вы идете …
- Не совершайте файл .tfstate
- Настроить бэкэнда
- Резервный Ваши государственные файлы
- Держите свои бэкэндуки маленькими
- Используйте одно состояние на окружающую среду
- Настройка Backend Государственная блокировка
- Выполнить террафору в автоматической сборке
- Манипулировать состояние только через команды
- Используйте переменные (либерально)
- Используйте модули (только там, где это необходимо)
Давайте сломаем некоторые из этих областей вниз …
Что такое террафор?
Прежде чем добраться до наилучшей практики, давайте обсудим то, что такое террафору. Terraform — это открытый источник, инструмент на основе CLI, который помогает с созданием и управлением облачными ресурсами. На простом английском Terraform — это инструмент, который помогает вам создавать, обновлять и быстро и легко удалять облачную инфраструктуру.
Подробнее о террафоре и инфраструктуре как код, проверьте: Инфраструктура как код: окончательное руководство Отказ
1. Не совершайте .tfstate Файл
Пример Государственный файл Terraform
Давайте попадаем прямо на латунные прихваты: не совершайте .tfstate
файл.
.tfstate
Это файл, выводимый Terraporm, когда вы запускаете команды, которые изменяют ваше состояние. Например, при работе Террафом применяется
Отказ Файл TFState хранит информационные сопоставления между вашими созданными именами ресурсов и реальной инфраструктурой (если вам интересно узнать больше о том, почему файл TFState важен, я бы предложил вам проверить официальный Государственные документы Terraform ).
В конечном итоге террафом не может работать без современного государственного файла, поэтому многие инженеры считают, что они совершают его в управление версиями. Но совершение государственного файла поставляется с несколькими рисками … Во-первых, вы могли бы разогнать секреты из вашей конфигурации приложения, например, пароли, строки подключения к базе данных. И во-вторых, вы рискуете выполнять террафору против несвежей или старом государства, который вы забыли снять от контроля версий.
Но не бояться, есть альтернатива для совершения файла TFState, и это путем настройки функции, называемой Terraform «Backend». Backends — довольно большая тема, которая требует собственного раздела. Давайте обсудим бэкэнс сейчас …
Для получения дополнительной информации о том, какой государственный файл и почему вы не должны его совершать, выйти: Должны ли вы совершить файл террафора .tfstate в git?
2. Настроить бэкэнда
Пример конфигурации Backend Terraform
Организация террафора — это конфигурация на том, как (и где) хранить состояние вашего террафора в централизованном удаленном месте. Настройки Backend будут зависеть от того, какой провайдер облака/типа Backend вы хотите настроить. Вы можете настроить бэкэнд на S3 , на артефактория или в целом множество других способов Отказ
Действия широко говоря, имеют две основные функции: состояние блокировки и удаленного состояния. Блокировка предотвращает два казня, происходящие одновременно. И удаленное состояние хранилище позволяет поместить ваше состояние в удаленное, но доступное местоположение.
По умолчанию Terraform использует «локальный» тип бэкэнда, который вызывает вывод .tfstate
Файл, который мы обсуждали ранее. Но с помощью Backend настроили этот файл состояния, автоматически нажимается в удаленное местоположение.
Проверьте Типы бэкэнд и следуйте инструкциям, чтобы настроить один.
Если вы используете AWS, вы можете следить за этим руководством для настройки действий GitHub Ultimate Terraform Workflow: настройка террафора (и удаленное состояние) С действиями GitHub
3. Резервный Ваш государственный файл
Пример Террафора Государственная версия
Поскольку ваш файл состояния является двигателем, который управляет вашей конфигурацией, имеет смысл убедиться, что местоположение, где вы храните свое состояние, резервное копирование. Состояние резервного копирования облегчает возврат к предыдущему состоянию, если вы ошиблись.
Например, в AWS версию очень легко настроить, как вам просто нужно убедиться, что ваш Ведро имеет версию включено. С версией включена ROTION CONTROCK к предыдущему состоянию — это просто кнопка, нажмите.
Поэтому обязательно проверьте варианты вашего поставщиков облачных поставщиков, где вы храните свою бэкэнду и убедитесь, что версия включена.
4. Держите свои бэкэндуки маленькими
Террафом применяется
Когда вы начинаете на проекте Terraform, вы, вероятно, получите всю вашу конфигурацию в одном месте. Однако со временем со временем рост инфраструктуры придет точка, в которой вы хотите разрушить свои инфраструктурные конфигурации.
Соединение всех ваших конфигураций вместе вводит риск, поскольку у вас есть возможность вводить нежелательные изменения в другой инфраструктуре при применении ваших изменений. Раскрыть свою инфраструктуру просто создать новые проекты Terraporm (и, следовательно, новое состояние).
Чтобы облегчить вашу жизнь, вы можете использовать такие команды, как Импорт террафора Чтобы переместить состояние между конфигурациями вашей террафоры и Remote_state Block Чтобы потянуть значения из других террафовых удаленных состояний.
Для получения дополнительной информации о том, как манипулировать и мигрировать существующую инфраструктуру, проверьте статью: 3 шага Чтобы перенести существующую инфраструктуру на террафору
5. Используйте одно состояние на окружающую среду
Государственный файл террафора
Среда используются для тестирования изменений, прежде чем они развернуты в вашей живой среде. Аналогично последней идее разрушения ваших файлов состояний, это также имеет смысл разрушать конфигурации вашей террафоры и файлы состояния на окружающую среду. Опять же, разрушение окружающей средой снижает риск, когда вы применяете изменения.
6. Настройка Backend Государственная блокировка
Пример Terraporm Backend Config (с блокировкой состояния)
Государство Terraform поставляется в двух частях: удаленное состояние и состояние блокировки. Государственная блокировка предотвращает две мутационные команды, такие как Террафом применяется
работающий в одном и том же состоянии файла одновременно.
Чтобы настроить удаленное состояние, Следуйте инструкциям предусмотрено вашу опцию конфигурации Backenn. Для бэкэки, настроенной с AWS, обновление конфигурации Backend проста в качестве ссылки на новый Динамо БД Название таблицы.
7. Выполнить террафору в автоматической сборке
Действия Github Terraform
Запуск кода в автоматическом сборке Build имеет много преимуществ, которые включают в себя повторяющийся процесс и историю изменений. Концепция строительных конструкций также очень полезна при применении к террафом, обеспечивая более заметное, когда и то, что было выполнено против вашей инфраструктуры для аудита, отладки и совместных целей.
Если вы хотите дешевый и простой способ получить настройку CI с террафом, посмотрите статью: Ultimate Terraform Workflow: настройка террафора (И удаленное состояние) С действиями GitHub
8. Не выполняйте государственную хирургию (используйте CLI)
Государственные команды террафора
Поскольку государственный файл является представлением вашей инфраструктуры в реальном мире Иногда ситуации придумывают, которые требуют, чтобы вы изменили ваше состояние. Например, если вы хотите переименовать блок ресурсов, вам нужно будет повторно назначить состояние вашего террафора на новое имя ресурса.
Многие, когда им нужно перемещать или переименовать состояние, соблазн нырять в сам файл состояния и начать взлом вокруг. Но будьте осторожны, есть гораздо безопасный путь! Terraform CLI дает вам команды, которые позволяют вам удалить или двигаться ( Terraform State RM
и Государство террафора М.В.
Несомненно
Короче … Никогда не касайтесь файла состояния самостоятельно. Вместо этого Переместить состояние и Удалить состояние используя CLI. Эти команды должны быть все, что вам когда-либо понадобится.
9. Использовать переменные, либерально
Как в большинстве регулярных языков программирования, У террафора есть переменные Отказ Переменные позволяют хранить общие или повторяющиеся значения конфигурации, что, в свою очередь, сохраняет ваш код простой для управления и обновления. Террафом ничем не отличается.
Использовать переменные в террафоре все, что вам нужно сделать, это объявить вашу переменную Где-то в вашей конфигурации и позже Ссылка Ваша переменная В ваших конфигурациях ресурсов. Затем вы можете пройти значения для ваших переменных, как Переменные среды или по Прохождение в ценностях от Terraform CLI Отказ
Поэтому обязательно найдите какие-либо повторяющиеся значения в вашей конфигурации, например, имена окружающей среды, или префиксы и хранят их в переменных.
10. Используйте модули (где это необходимо)
Террафом модуль состояния двигаться
Модули террафора позволяют разбить конфигурации инфраструктуры в общие бёнки. Вы можете думать о модулях в террафоре, таких как обычные функции программирования. Модули принимают некоторые входы, делают вещи (в нашем случае, определяют инфраструктуру) и возврат результаты.
Модули помогают вам принять общие шаблоны инфраструктуры и поделиться им на протяжении всего вашего кода или бизнеса. Но модули иногда могут быть немного болью для обслуживания, поэтому обязательно применить их только при необходимости. Хорошее правило для достижения модулей, когда вы видели шаблон как минимум 3 раза.
Для получения дополнительной информации о модулях террафора обязательно проверьте эту статью: Модули террафора: руководство по поддержанию инфраструктуры в качестве кода
Иди, внедряйте великую террафору.
И это обертывание наших 10 лучших практики Terraform на сегодня!
Надеюсь, вы узнали несколько новых лучших практик Terraform и теперь получили некоторые идеи для вещей, которые вы можете настроить или изменять, чтобы сделать вашу текущую настройку Terraform быстрее, безопаснее и легче поддерживать.
Говорите в ближайшее время облако коренного друга!
Какие лучшие практики вы реализовали на собственную террафору?
Пост 10 лучших практик Terraform: для безопасной и быстрой инфраструктуры. появился первым на DEV тренер Отказ
Лу — редактор Облако нативное программное обеспечение Инженерное рассылка Информационный бюллетень, посвященный в создании облачного программного обеспечения более доступен и легко понять. Каждый месяц вы получите дайджест лучшего контента для облачных нативных программных инженеров, прямо в вашем почтовом ящике.
Оригинал: «https://dev.to/loujaybee/10-terraform-best-practices-for-secure-fast-infrastructure-5c7i»