Доставчици на Terraform

Dostavcici Na Terraform



Един от популярните инструменти за инфраструктура с отворен код е Terraform. Тя позволява на разработчиците да дефинират и управляват вашата инфраструктура декларативно. Тя им позволява да създават, управляват и модифицират инфраструктурните ресурси, използвайки прост и последователен синтаксис, независимо от основната облачна платформа или доставчик на услуги.

Тази статия обсъжда как да използвате и конфигурирате различните доставчици за взаимодействие с различни облачни платформи и услуги.

Въведение в доставчиците на Terraform

Доставчиците на Terraform са плъгини, които ни позволяват да взаимодействаме с различни облачни платформи и услуги, използвайки Terraform. Тези доставчици са отговорни за превода на конфигурацията на Terraform в API повиквания, което е необходимо за управление на ресурсите на конкретна облачна платформа или услуга.







Видове доставчици в Terraform

В Тераформен регистър , можем да видим три типа доставчици:



Официални доставчици

Официалните доставчици се поддържат от компанията HashiCorp, която притежава Terraform. Тези доставчици са най-добрата налична опция, ако имаме нужда от добре документирани и актуални доставчици.



Доставчиците на AWS, Microsoft Azure и Google Cloud Platform могат да бъдат примери за официални доставчици в Terraform.





Партньорски доставчици

Организации на трети страни поддържат тези доставчици и са си партнирали с HashiCorp, за да предоставят официална поддръжка за техните услуги.

Доставчиците на GitLab, MongoDB и CloudFlare са някои партньорски доставчици, които са достъпни за потребителите.



Доставчици от Общността

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

Някои примери за доставчици на общността са показани на следното изображение:

Как да използвате доставчик на Terraform

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

След като доставчикът е конфигуриран, можем да използваме ресурсите и източниците на данни, които са предоставени от доставчика в нашата конфигурация Terraform, за да управляваме ресурсите на облачната платформа или услуга.

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

доставчик 'aws' {

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

регион = 'нас-изток-2'

}

ресурс 'aws_instance' 'myEC2' {

което = 'ami-0a561b65214a47cac'

инстанция_тип = 't3. малък'

тагове = {

Име = 'нова инстанция'

}

}

Първо дефинираме блока на доставчика, като посочим доставчика на AWS и региона, където се създават ресурсите. След това дефинираме нашия ресурсен блок като състоящ се от aws_instance като тип ресурс, „myEC2“ като име на ресурс и „ami“, „instance_type“ и „tags“ като атрибути. Типът ресурс може да бъде разделен на две части: доставчик и ресурс. В този случай „aws“ е доставчикът, а „instance“ е ресурсът. Освен това, ако някой трябва да предостави десет EC2 екземпляра, атрибутът „count“ може да се използва с десет като стойност.

Сега можем да изпълним потока Terraform, който включва изпълнение на командите terraform init, terraform plan и terraform apply, за да създадем ресурса, който сме дефинирали.

Използвайки доставчика на Terraform AWS, можем да имаме достъп до облачната платформа на AWS и да взаимодействаме с нейните услуги ефективно, без да използваме конзолата за управление на AWS.

Използване на множество доставчици в Terraform

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

За ваше разбиране, нека имаме пример, при който внедряваме изчислителна машина в Google Cloud Platform, хранилище в GitHub и S3 кофа в облачната платформа AWS.

доставчик 'google' {

проект = 'първи проект'

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

}

доставчик 'github' {

жетон = „YOUR_GITHUB_TOKEN“

}

доставчик 'aws' {

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

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

}

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

име = 'нова инстанция'

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

зона = 'us-west1-a'

boot_disk {

initialize_params {

изображение = 'debian-cloud/debian-10'

}

}

}

ресурс 'github_repository' 'gitRepo' {

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

описание = „Това е новото ми хранилище“

}

ресурс 'aws_s3_bucket' 'awsBucket' {

кофа = 'нова-кофа'

acl = 'частен'

}

Като първа стъпка дефинираме нашите блокове на доставчици, за да посочим доставчиците (Google, GitHub и AWS) и необходимата информация като регион, име на проект и т.н. След това декларираме нашите ресурси, като използваме три ресурсни блока: „gcpInstance“, „ gitRepo“ и „awsBucket“.

Първо създаваме изчислителна машина в Google Cloud Platform с „new-instance“ като име, „n1-standard-1“ като тип машина и „us-west1-a“ като зона за достъпност. Той използва Debian като хост ОС. След това създаваме GitHub хранилище, наречено „new-repo“ и подходящо описание. Накрая се прави кофа S3 с „new-bucket“ като име и „private“ като ACL (списък за контрол на достъпа) стойност.

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

Най-добри практики за работа с доставчици на Terraform

Версии на доставчика

Трябва да уточним версията на доставчика, тъй като това помага да се гарантира последователност и избягва неочаквано поведение поради нарушаващи промени в по-новите версии.

Удостоверяване на доставчика

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

Документация на доставчика

Доставчиците често имат специфични опции за конфигурация, функции и ограничения. Разбирането на този урок ни помага да използваме доставчика ефективно и да избягваме често срещани клопки.

Актуализации на доставчика

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

Подкрепа от общността

Можем да използваме онлайн форумите, дискусионните табла и каналите на общността, за да разрешим ежедневните предизвикателства, които се срещат при използването на доставчиците.

Обработка на грешки и отстраняване на неизправности

Добра практика е да се запознаем със съобщенията за грешка, регистрационните файлове и техниките за отстраняване на грешки на доставчика, така че това ще ни помогне при по-ефективното диагностициране и разрешаване на проблемите.

Заключение

Представихме накратко доставчиците на Terraform. Обсъдихме как да ги използваме и конфигурираме за взаимодействие с различни облачни платформи и услуги и как да използваме множество доставчици за управление на ресурсите в различни облачни платформи и услуги чрез лесни за разбиране примери.