Провайдеры терраформ

Provajdery Terraform



Одним из популярных инструментов Infrastructure as a Code с открытым исходным кодом является Terraform. Это позволяет разработчикам декларативно определять и управлять вашей инфраструктурой. Это позволяет им создавать, управлять и изменять ресурсы инфраструктуры, используя простой и согласованный синтаксис, независимо от базовой облачной платформы или поставщика услуг.

В этой статье обсуждается, как использовать и настраивать различных поставщиков для взаимодействия с различными облачными платформами и службами.

Введение в провайдеры Terraform

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







Типы провайдеров в Terraform

в Реестр Terraform , мы можем видеть три типа провайдеров:



Официальные провайдеры

Официальные провайдеры поддерживаются компанией HashiCorp, которой принадлежит Terraform. Эти провайдеры являются лучшим доступным вариантом, если нам нужны хорошо задокументированные и актуальные провайдеры.



Поставщики AWS, Microsoft Azure и Google Cloud Platform могут быть примерами официальных поставщиков в Terraform.





Поставщики-партнеры

Сторонние организации поддерживают этих провайдеров и сотрудничают с HashiCorp, чтобы обеспечить официальную поддержку своих услуг.

Поставщики GitLab, MongoDB и CloudFlare являются некоторыми поставщиками-партнерами, доступными для пользователей.



Поставщики сообщества

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

Некоторые примеры поставщиков услуг сообщества показаны на следующем изображении:

Как использовать провайдера Terraform

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

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

Давайте создадим простой файл конфигурации Terraform, который создает экземпляр EC2 на облачной платформе AWS.

провайдер 'Ой' {

версия = '~> 3.0'

регион = 'США-Восток-2'

}

ресурс 'aws_instance' 'мойEC2' {

который = 'ами-0a561b65214a47cac'

тип_экземпляра = 'т3. маленький'

теги = {

Имя = 'новый экземпляр'

}

}

Сначала мы определяем блок провайдера, указав провайдера AWS и регион, в котором создаются ресурсы. Затем мы определяем наш блок ресурсов, состоящий из aws_instance в качестве типа ресурса, «myEC2» в качестве имени ресурса и «ami», «instance_type» и «tags» в качестве атрибутов. Тип ресурса можно разделить на две части: Поставщик и Ресурс. В данном случае «aws» — это провайдер, а «экземпляр» — это ресурс. Кроме того, если кому-то нужно выделить десять экземпляров EC2, атрибут «count» можно использовать с десятью в качестве значения.

Теперь мы можем выполнить поток Terraform, который включает в себя выполнение команд terraform init, terraform plan и terraform apply для создания определенного нами ресурса.

Используя провайдера Terraform AWS, мы можем получить доступ к облачной платформе AWS и эффективно взаимодействовать с ее сервисами без использования Консоли управления AWS.

Использование нескольких провайдеров в Terraform

Вместо использования одного провайдера Terraform позволяет нам использовать несколько провайдеров в одном файле конфигурации Terraform для взаимодействия с различными типами сервисов и облачных платформ.

Для вашего понимания давайте рассмотрим пример, в котором мы развертываем вычислительный движок на облачной платформе Google, репозиторий на GitHub и корзину S3 на облачной платформе AWS.

провайдер 'Google' {

проект = 'первый проект'

регион = 'сша-запад1'

}

провайдер 'гитхаб' {

жетон = 'ВАШ_GITHUB_TOKEN'

}

провайдер 'Ой' {

версия = '~> 3.0'

регион = 'США-Запад-2'

}

ресурс 'google_compute_instance' 'gcpInstance' {

имя = 'новый экземпляр'

тип_машины = 'n1-стандарт-1'

зона = 'нас-запад1-а'

Загрузочный диск {

initialize_params {

изображение = 'дебиан-облако/дебиан-10'

}

}

}

ресурс 'github_repository' 'ГитРепо' {

имя = 'новое репо'

описание = 'Это мой новый репозиторий'

}

ресурс 'aws_s3_bucket' 'авсбакет' {

ведро = 'новое ведро'

аккл = 'частный'

}

В качестве первого шага мы определяем наши блоки провайдеров, чтобы указать провайдеров (Google, GitHub и AWS) и необходимую информацию, такую ​​как регион, название проекта и т. д. Затем мы объявляем наши ресурсы, используя три блока ресурсов: «gcpInstance», « gitRepo» и «awsBucket».

Сначала мы создаем вычислительный движок в Google Cloud Platform с именем «новый экземпляр», типом машины «n1-standard-1» и зоной доступности «us-west1-a». Он использует Debian в качестве основной ОС. Затем мы создаем репозиторий GitHub с именем «new-repo» и подходящим описанием. Наконец, корзина S3 создается с «новой корзиной» в качестве имени и «частным» в качестве значения ACL (список управления доступом).

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

Лучшие практики работы с провайдерами Terraform

Версии провайдера

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

Аутентификация провайдера

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

Документация провайдера

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

Обновления провайдера

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

Поддержка сообщества

Мы можем использовать онлайн-форумы, доски обсуждений и каналы сообщества для решения повседневных проблем, возникающих при использовании провайдеров.

Обработка ошибок и устранение неполадок

Рекомендуется ознакомиться с сообщениями об ошибках, журналами и методами отладки поставщика, чтобы помочь нам более эффективно диагностировать и решать проблемы.

Заключение

Мы кратко познакомились с провайдерами Terraform. Мы обсудили, как использовать и настраивать их для взаимодействия с различными облачными платформами и службами, а также как использовать нескольких поставщиков для управления ресурсами на разных облачных платформах и службах на простых для понимания примерах.