TERRAFORM - ДЛЯ ЧЕГО ОН НУЖЕН И КАК УСТАНОВИТЬ

Thank you for reading this post, don't forget to subscribe!

Terraform – Open Source про­ект от HashiCorp создан в 2014 году. Явля­ет­ся пре­вос­ход­ным инстру­мен­том для созда­ния Инфра­струк­ту­ре в коде (Infrastructure as a Code). Про­ект абсо­лют­но бес­плат­ный и мож­но даже ском­пи­ли­ро­вать его из исход­ни­ков, изме­нить его, т.е пол­но­стью откры­тый про­ект. Дан­ный про­дукт явля­ет­ся пре­вос­ход­ным инстру­мен­том для созда­ния инфра­струк­ту­ры в коде. Сайт про­дук­та https://www.terraform.io.

Язык про­грам­ми­ро­ва­ния инфра­струк­ту­ры в cloud, не важ­но какой cloud. AWS, Google Cloud, Microsoft Azure, Digital Ocean, Yandex, AliCloud и есть под­держ­ка мно­го­го дру­го­го, в том чис­ле пла­ги­ны под VMware. С помо­щью дан­но­го про­грамм­но­го обес­пе­че­ния мож­но даже управ­лять репо­зи­то­ри­ем Git Hub. Дан­ный про­дукт явля­ет­ся отлич­ным для напи­са­ния IaaS кода.

Син­так­сис кода пишет­ся на Hashicorp Configuration Language (HCL). Фай­лы, содер­жа­щие напи­сан­ный вами код, долж­ны иметь рас­ши­ре­ние tf. Это обыч­ные тек­сто­вые фай­лы на про­грамм­ном язы­ке. Мож­но исполь­зо­вать любой тек­сто­вый редак­тор с допол­ни­тель­ны­ми пла­ги­на­ми для Terraform, что­бы систе­ма под­ска­зы­ва­ла, поправ­ля­ла, дава­ла под­свет­ку или рас­кра­ши­ва­ла код для удоб­ства, чте­ния. Очень удоб­ный для этой цели исполь­зо­вать тек­сто­вый редак­тор Atom. Код после напи­са­ния не тре­бу­ет ника­кой ком­пи­ля­ции, т.е про­сто пиши­те свой тек­сто­вый файл на HCL и запус­ка­е­те про­сто с помо­щью Terraform. Terraform рабо­та­ет на Windows, MacOS, Linux, т.к он напи­сан на язы­ке Go, ком­пи­ли­ру­е­те под опе­ра­ци­он­ную систе­му и запус­ка­е­те, где угодно.

Если рас­смот­реть кон­ку­рен­тов, то это AWS CloudFormation – инстру­мент для напи­са­ния кода для AWS, он не крос­сплат­фор­мен­ный и поз­во­ля­ет писать код толь­ко для AWS. Сле­ду­ю­щий кон­ку­рент Ansible - с помо­щью него тоже мож­но созда­вать инфра­струк­ту­ру, через код, но он на мой взгляд слиш­ком гро­мозд­кий и не очень удоб­ный. Есть еще Puppet и Chef. Вот самые попу­ляр­ные инстру­мен­ты кон­ку­рен­ты для созда­ния инфра­струк­ту­ры из кода.


2. УСТАНОВКА НА WINDOWS

Уста­нов­ка на опе­ра­ци­он­ную систе­му MS Windows доста­точ­на про­стая. Пере­хо­дим на основ­ной сайт про­дук­та и выби­ра­ем опе­ра­ци­он­ную систе­му MS Windows нуж­ной раз­ряд­но­сти нажи­ма­ем, ска­чи­ва­ем. После закач­ки мы полу­чим файл в zip архи­ве. Рас­па­ко­вы­ва­ем и полу­ча­ем файл terraform.exe. В прин­ци­пе это­го для рабо­ты доста­точ­но, но неудоб­но. В такой кон­фи­гу­ра­ции необ­хо­ди­мо каж­дый раз вво­дить путь к фай­лу terraform.exe. Что­бы это­го избе­жать необ­хо­ди­мо доба­вить путь в пере­мен­ные сре­ды Windows. В опе­ра­ци­он­ной систе­ме Windows 10 нажи­ма­ем пра­вой кноп­кой Пуск, выби­ра­ем Систе­ма, в открыв­шем­ся окне сле­ва выби­ра­ем Све­де­ния о cисте­ме, далее пере­хо­дим на вклад­ку Допол­ни­тель­но, далее вни­зу кноп­ка Пере­мен­ные сре­ды. В ниж­нем окне созда­ем новую пере­мен­ную terraform и путь к месту, где лежит файл.


3. УСТАНОВКА В LINUX

Уста­нов­ка Terraform на Linux про­ис­хо­дит не слож­нее, чем на Windows. Откры­ва­ем в бра­у­зе­ре офи­ци­аль­ный сайт, выби­ра­ем раз­ряд­ность Linux и копи­ру­ем адрес ссыл­ки на файл в буфер обме­на. Откры­ва­ем Terminal. Созда­ем или пере­хо­дим в нуж­ную дирек­то­рию mkdir terraform или cd /tmp. Ска­чи­ва­ем wget URL и в дирек­то­рии появ­ля­ет­ся нуж­ный файл.

Рас­па­ко­вы­ва­ем unzip terraform_0.15.1_linux_amd64.zip. В резуль­та­те рас­па­ку­ет­ся один испол­ня­е­мый файл terraform. Оста­лось пере­не­сти файл отку­да он будет запус­кать­ся с любой дирек­то­рии sudo mv terraform /bin. Дирек­то­рия с бинар­ны­ми фай­ла­ми. После это­го мы можем вызы­вать тер­ра­форм из любо­го места коман­дой terraform.