Terraform - це програмний засіб, який використовується для управління інфраструктурою, розроблений компанією Hashicorp. Даний програмний засіб дозволяє реалізовувати парадигму "Infrastructure as Code". Налаштування потрібного середовища реалізується з допомогою конфігураційного файлу.

У даній статті розглянуто процес налаштування Terraform для розгортання образу ОС Ubuntu на VirtualBox.

Крок 1. Завантаження VirtualBox https://www.virtualbox.org/wiki/Downloads

Крок 2. Завантаження Vagrant https://www.vagrantup.com/downloads

Крок 3. Завантаження Go https://go.dev/learn/

Крок 4. Завантажити Terraform https://www.terraform.io/downloads та розархівувати у бажану директорію. Рекомендовано не використовувати кириличні символи у назві директорій.

Крок 4. Додати усі вищенаведені програми до спску системних змінних в ОС Windows.

1

Крок 5. Перевірка Terraform версії. Важливо !!! Наведені програми повинні бути видимими з будь якої директорії в системі.

2

Крок 6. Перевірка статусу запущеної віртуальної машини. Для цього запустимо у консоді команду VBoxManage.exe

3

Крок 7. Завантаження VirtualBox провайдера із сайту https://registry.terraform.io/providers/shekeriev/virtualbox/0.0.4 та подальше розархівування у робочій директорії.

Крок 8. Після переходу у директорію (Крок 7) необхідно збудувати проект, використовуючи мову програмування Go.

4

В результаті отримаємо згенерований файл 5

Крок 9. Скопіююємо згенерований файл terraform-provider-virtualbox.exe у директорію із нашим проектом ,у даному випадку це E:\DevOps\terraform_1.2.6_windows_amd64

6

Крок 10. У директорії проекту "E:\DevOps\terraform_1.2.6_windows_amd64" запустимо команду ./terraform init

6

Крок 10.  Відкрємо будь яке середовище розробки і створимо конфігураційний файл main.tf . Для прикладу використано середовище PHPStorm. Для зрусності редагування конфігураційного файлу є можливість доставити плагіни для terraform. Вміст файлу main.tf

7

terraform { required_providers { virtualbox = { source = "terra-farm/virtualbox" version = "0.2.2-alpha.1" } } }

variable "type_network" { default = "bridged" }

resource "virtualbox_vm" "nodetest" { count = 1 name = "${ format("node-%02d", count.index+1)}" image = "https://vagrantcloud.com/geerlingguy/boxes/ubuntu1804/versions/1.0.4/providers/virtualbox.box" cpus = 2 memory = "2GB"

network_adapter { type = "bridged" host_interface = "Qualcomm Atheros QCA9377 Wireless Network Adapter" } }

output "Ipaddress" { value = element( virtualbox_vm.nodetest.*.network_adapter.0.ipv4_address, 1 ) }

Крок 11. Запустимо команду ./terraform plan

8

Крок 12. Запустимо команду ./terraform apply

9

Результат: у VirtualBox створилась віртуальна машина node-01 та успішно запустилась.

10

Перейшовши у саму віртуальну машину та ввівши логін/пароль

vagrant/vagrant , ми можемо працювати з ubuntu.

11

Натхненням для цього матеріалу став курс від компанії Softserve "Teacher's DevOps Course".