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.
Крок 5. Перевірка Terraform версії. Важливо !!! Наведені програми повинні бути видимими з будь якої директорії в системі.
Крок 6. Перевірка статусу запущеної віртуальної машини. Для цього запустимо у консоді команду VBoxManage.exe
Крок 7. Завантаження VirtualBox провайдера із сайту https://registry.terraform.io/providers/shekeriev/virtualbox/0.0.4 та подальше розархівування у робочій директорії.
Крок 8. Після переходу у директорію (Крок 7) необхідно збудувати проект, використовуючи мову програмування Go.
В результаті отримаємо згенерований файл
Крок 9. Скопіююємо згенерований файл terraform-provider-virtualbox.exe у директорію із нашим проектом ,у даному випадку це E:\DevOps\terraform_1.2.6_windows_amd64
Крок 10. У директорії проекту "E:\DevOps\terraform_1.2.6_windows_amd64" запустимо команду
./terraform init
Крок 10. Відкрємо будь яке середовище розробки і створимо конфігураційний файл main.tf . Для прикладу використано середовище PHPStorm. Для зрусності редагування конфігураційного файлу є можливість доставити плагіни для terraform. Вміст файлу main.tf
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
Крок 12. Запустимо команду ./terraform apply
Результат: у VirtualBox створилась віртуальна машина node-01 та успішно запустилась.
Перейшовши у саму віртуальну машину та ввівши логін/пароль
vagrant/vagrant , ми можемо працювати з ubuntu.
Натхненням для цього матеріалу став курс від компанії Softserve "Teacher's DevOps Course".