Създаване на проект Terraform и стартиране на AWS EC2

Кратко описание, връзки към документация и инсталирането наTerraform са описани тук>>>.

По-долу е даден пример за създаване на прост проект и стартиране на екземпляр наAWC EC2 чрез него.

Създайте директория на проекта:

Създаваме файл с разширение .tf, който ще бъде конфигурационният файл на нашата "инфраструктура":

Добавяне на данни към файла:

Блокът доставчик описва доставчика, в този случай това еAmazon Web Service, в който ще издигнем сървъраEC2.

Ресурсният блок дефинира ресурсите, които ще съществуват в нашата архитектура. Може да имаAWS EC2 сървъри - или някакво приложение, катоHeroku.

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

Освен товаTerraform в директорията на проекта (от точката за стартиране на плана) ще създаде файла terraform.tfstate, в който всички планирани промени ще бъдат записани във форматJSON :

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

В същото време могат да се появят грешки, свързани със самата инфраструктура наAWS, например:

Намиране на подходяща подмрежа:

Към файла test_1.tf , към блока:

Нека го стартираме отново:

Сега проблемът със съхранението.AMI IDбеше взет от един от нашите стари файлове с настройки, така че намерихме нов. ЗаUbuntu можете да намерите списък сAMI по регион тук - https://cloud-images.ubuntu.com/locator/ec2/

Описание на хранилища за различни видове инстанции можете да намерите тук - https://aws.amazon.com/ec2/instance-types/

us-west-2доверен14.04LTSamd64ebs20151019ami-96e605a5aki-fc8f11cc

АктуализирайтеAMI ID в test_1.tf и проверете отново:

стартиране

Можете да видите текущите настройки на проекта с show:

Данните, както споменахме, се записват във файла terraform.tfstate:

Проверка за екземпляр:

За да разрешите регистриране на работа, задайте две променливи: