28 вопросов и ответов из интервью Terraform в реальном времени
Опубликовано: 2022-03-11Вот 28 вопросов и ответов на собеседованиях по Terraform в реальном времени со списком и объяснением важных команд, которые часто задают на собеседованиях.
Рост использования облачных технологий открыл множество возможностей в мире DevOps. В будущем облачные технологии станут частой темой для вопросов на собеседованиях, а базовые знания об облаке и инфраструктуре как коде, инструменты IAC станут обязательными для ролей DevOps.
Что такое Терраформ?
Terraform — один из самых популярных инструментов IAC, которым пользуется каждый облачный инженер. Это позволяет нам определять как облачные, так и локальные ресурсы в удобочитаемых файлах конфигурации и тем самым предоставлять эти ресурсы программно. Наиболее примечательной особенностью Terraform является то, что, в отличие от большинства инструментов IAC, он не ограничен одним облачным провайдером. Вы можете использовать Terraform для одновременного запуска ваших приложений на нескольких облачных платформах.
Если вам интересно, какие технологии поддерживает terraform, вот небольшой список:
- Веб-сервисы Amazon (AWS)
- Облачная платформа Google (GCP)
- Microsoft Azure
- IBM Облако
- VMware vSphere
- Серверное пространство
DigitalOcean - Облачная инфраструктура Oracle
- Яндекс. Облако
- OpenStack.
Чтобы продвигаться по карьерной лестнице в качестве инженеров DevOps, облачных архитекторов, разработчиков или администраторов, вам придется ответить на вопросы интервью Terraform. Мы составили список лучших вопросов для собеседования по Terraform, которые должны помочь вам улучшить свои знания о Terraform.
Общие вопросы и ответы интервью Terraform
№1. Что вы понимаете под Терраформ?
Terraform — это инструмент IAC с открытым исходным кодом, созданный HashiCorp. Он используется для создания, обновления, удаления и версии вашей инфраструктуры на нескольких облачных платформах.
№ 2. Каковы причины выбора Terraform для DevOps?
Использование Terraform для предоставления инфраструктуры не оставляет места человеческим ошибкам, что повышает качество, согласованность и эффективность облачной и локальной инфраструктуры. Terraform использует язык HCL, который очень похож на JSON и прост в изучении и использовании. В отличие от других инструментов IAC, предлагаемых поставщиками облачных услуг, таких как Cloudformation для AWS, мы можем использовать Terraform одновременно с несколькими облачными платформами. Это устраняет необходимость изучения нескольких инструментов IAC и расширяет возможности сотрудничества.
№3. Как работает Терраформ?
Terraform использует подключаемые модули, называемые поставщиками Terraform, для взаимодействия с API на облачных платформах и предоставления наших ресурсов. Как конечный пользователь, рабочий процесс terraform состоит из трех этапов.
Напишите : создайте инфраструктуру как код.
План : Предварительный просмотр изменений, которые Terraform внесет перед применением.
Применить : подготовить инфраструктуру и применить изменения.
№ 4. Что вы подразумеваете под облаком Terraform?
Terraform Cloud — это удаленная среда, оптимизированная для рабочего процесса Terraform. Он предоставляет такие функции, как рабочие области и блокировка состояния, что позволяет людям в больших командах сотрудничать.
№ 5. Что вы понимаете под состоянием в Terraform?
Как инструмент IAC, terraform должен знать текущее состояние конфигураций и инфраструктуры, находящихся под его управлением. Terraform хранит эту информацию в файле, называемом файлом состояния.
№ 6. В чем преимущество Terraform State?
Состояние Terraform позволяет Terraform сопоставлять реальные ресурсы с вашей конфигурацией, отслеживать метаданные и повышать производительность при планировании изменений для сложных инфраструктур. Это важнейший компонент Terraform.
№ 7. Что вы понимаете под Terraform Backend?
Серверная часть Terraform — это платформа, на которой хранятся моментальные снимки состояния Terraform. По умолчанию Terraform использует бэкэнд с именем local для хранения состояния в виде локального файла на вашем диске. Все остальные поддерживаемые бэкенды являются своего рода службой удаленного хранения.
№8. Что такое провайдер в Terraform?
Провайдеры в Terraform — это плагины, которые позволяют Terraform взаимодействовать с облачными провайдерами, провайдерами SaaS и другими API. Например, если мы планируем использовать Terraform для предоставления инфраструктуры на AWS, нам потребуется объявить поставщика AWS в наших файлах конфигурации.
№ 9. Кто поддерживает Terraform Providers?
Провайдеры распространяются отдельно от самого Terraform. Как пользователь Terraform, каждый может разрабатывать своих собственных провайдеров. Есть несколько стандартных провайдеров, которые явно поддерживаются Hashicorp.
№10. Что такое Сентинел?
Sentinel — это политика как инструмент кода, используемый для обеспечения стандартных конфигураций ресурсов, развертываемых Terraform. Он может использоваться организациями для целей соблюдения и управления.
№ 11. Что вы понимаете под модулями в Terraform?
Модуль Terraform — это стандартный контейнер для нескольких ресурсов, используемых вместе для предоставления и настройки ресурсов. Например, вы можете создать «модуль VPC» для своей организации, который предоставляет стандартный VPC и другие ресурсы, такие как подсети и интернет-шлюзы. Модули могут быть опубликованы публично через реестр общедоступных модулей и конфиденциально через реестр частных модулей.
№ 12. В чем преимущество использования модулей в terraform?
Модули Terraform позволяют нам создавать логическую абстракцию поверх набора ресурсов. Использование модулей позволяет нам поддерживать и повторно использовать стандартную конфигурацию ресурсов. Их можно версионировать и делиться ими с членами вашей команды для предоставления ресурсов стандартным способом.
№ 13. Что такое частный реестр модулей?
Функция частного реестра модулей Terraform Cloud позволяет нам совместно использовать модули Terraform в нашей организации.
Расширенные вопросы и ответы интервью Terraform
№ 14. Как мы можем экспортировать данные из одного модуля в другой?
Мы можем экспортировать данные из модуля, определив блоки вывода в файлах конфигурации модуля. Затем эти данные могут быть переданы в качестве параметра в модуль назначения.
№ 13. Как вы можете определить зависимости в Terraform?
Terraform имеет встроенное управление зависимостями. Terraform имеет два типа зависимостей между ресурсами — неявные и явные зависимости.
Неявные зависимости, как следует из названия, обнаруживаются Terraform автоматически. Это когда выход «ресурса А» используется в «ресурсе Б». Terraform автоматически определяет, что «ресурс B» необходимо создать только после «ресурса A».

Явные зависимости могут быть указаны в случаях, когда два ресурса внутренне зависят друг от друга без совместного использования каких-либо выходных данных. Это можно сделать с помощью параметра depend_on в блоке конфигурации.
№ 14. Что такое Provisioners в Terraform?
Provisioners — это ресурсы Terraform, используемые для выполнения скриптов как части создания или уничтожения ресурсов. В Terraform есть два типа поставщиков:
- local-exec: вызывает сценарий на машине, на которой работает Terraform.
- remote-exec: вызывает сценарий на удаленном ресурсе после его создания.
Провайдеры предназначены только для использования в качестве последнего средства в Terraform.
№ 15. Что такое внешний блок данных в Terraform?
Так же, как и поставщик local-exec, внешний блок данных можно использовать для запуска сценариев на машинах, на которых работает Terraform. Разница между поставщиком и блоком внешних данных заключается в том, что сценарии во внешнем блоке данных могут возвращать данные в формате JSON, тогда как поставщики не могут возвращать никаких выходных данных. Важно отметить, что внешние блоки данных также предназначены в качестве крайней меры и не должны использоваться, если есть лучшая альтернатива.
№ 16. Как два человека, использующие облако Terraform, могут создать два разных набора инфраструктуры, используя один и тот же рабочий каталог?
Используя различные рабочие пространства. Эти пользователи могут запускать запуски Terraform в двух отдельных рабочих областях. Каждая рабочая область имеет собственный файл состояния, поэтому, пока ресурсы не перекрываются, оба пользователя могут успешно подготовить два разных набора инфраструктуры, используя один и тот же код.
№ 17. Что происходит, когда несколько инженеров начинают разворачивать инфраструктуру, используя один и тот же файл состояния?
Terraform имеет очень важную функцию под названием «блокировка состояния» . Эта функция гарантирует, что в файл состояния не будут внесены изменения во время выполнения, и предотвратит повреждение файла состояния. Важно отметить, что не все серверные части Terraform поддерживают функцию блокировки состояния. Вы должны выбрать правильный сервер, если эта функция является требованием.
№ 18. Что такое нулевой ресурс в Terraform?
Ресурс terraform null — это конфигурация, которая работает как стандартный блок ресурсов terraform, но не создает никаких ресурсов. Это может показаться странным и бесполезным ресурсом, но он может быть полезен в различных ситуациях для обхода ограничений в Terraform.
№ 19. Как можно использовать одного и того же провайдера в Terraform с разными конфигурациями?
Используя аргумент псевдонима в блоке провайдера.
№ 20. У вас есть файл конфигурации Terraform без ресурсов. Что происходит, когда вы запускаете команду terraform apply
?
Terraform уничтожит все ресурсы. Запуск пустого прогона с помощью команды terraform apply
точно такой же, как запуск запуска terraform destroy.
№ 21. Что произойдет, если ресурс был успешно создан в terraform, но произошел сбой во время подготовки?
Это маловероятный сценарий, но когда это происходит, ресурс помечается как испорченный и его можно воссоздать, перезапустив терраформирование.
№ 22. Какое значение переменной TF_LOG
обеспечивает НАИБОЛЕЕ подробное ведение журнала?
TRACE является наиболее подробным и значением по умолчанию для переменной TF_LOG
.
№ 23. Как вы можете импортировать существующие ресурсы в Terraform Management?
С помощью команды terraform import
.
№ 24. Какую команду можно использовать для предварительного просмотра плана выполнения терраформирования?
Команда terraform plan
создает план выполнения изменений, которые Terraform внесет в инфраструктуру.
№ 25. Какую команду можно использовать для согласования состояния Terraform с реальной инфраструктурой реального мира?
Команда terraform apply -refresh-only
используется для согласования состояния Terraform с фактической реальной инфраструктурой. Это новая альтернатива команде terraform refresh
, которая сейчас устарела.
№ 26. Какую команду можно использовать для переключения между рабочими пространствами при использовании Terraform Cloud?
В terraform workspace select <workspace-name>
Команда используется для выбора другого рабочего пространства.
№ 27. Какая команда используется для проверки синтаксиса в файлах конфигурации terraform?
Команда terraform validate
используется для проверки правильности синтаксиса и внутренней согласованности конфигурации.
№ 28. Какая команда используется для создания новых рабочих пространств в облаке Terraform?
Команда terraform workspace new <workspace-name>
используется для создания нового рабочего пространства.
Некоторые другие важные команды терраформирования для технических интервью.
- terraform init: инициализирует удаленные серверные части; загружает провайдеров и удаленные модули, определенные в вашей конфигурации.
- terraform init -upgrade: используется для обновления существующих загруженных провайдеров.
- план terraform: генерирует план выполнения для создания или обновления инфраструктуры.
- terraform apply: создает или обновляет инфраструктуру после запроса подтверждения от пользователя.
- terraform apply –auto-approve: создает или обновляет инфраструктуру; этап утверждения пользователем пропускается.
- terraform destroy: удаляет инфраструктуру после запроса подтверждения от пользователя.
- terraform destroy –auto-approve: удаляет инфраструктуру; этап утверждения пользователем пропускается.
- terraform fmt : сканирует текущий каталог на наличие файлов конфигурации и форматирует их в соответствии с каноническим стилем и форматом HCP.
- terraform fmt –recursive: сканирует текущий каталог, а также подкаталоги на наличие файлов конфигурации и форматирует их в соответствии с каноническим стилем и форматом HCP.
- terraform show: обеспечивает удобочитаемый вывод из файла состояния или плана.
Я надеюсь, что приведенная выше информация поможет вам получить работу в Terraform.