Terraform — open-source программное обеспечение Infrastructure as code (IaC) или «инфраструктура как код», созданное HashiCorp. С помощью него пользователи могут определять и предоставлять инфраструктуру центра обработки данных, используя декларативный язык конфигурации, известный как язык конфигурации HashiCorp, или, опционально, JSON.
Предполагается, что Terraform уже установлен и настроен.
На момент написания этой документации актуальная версия Terraform — 0.12.24.!
C помощью Terraform невозможно создать виртуальную машину с указанием типа диска, правильно создать диск, а после создавать ВМ.
В директории с конфигурационными файлами terraform создается файл main.tf и добавляются данные для описания конфигурацию виртуальной инфраструктуры:
Данный сегмент кода отвечает за ssh ключ:
Далее следует создать security group, которая будет назначена создаваемой ВМ, и разрешить прием трафика по портам 22 и 80, а также разрешить icmp трафик с любого источника.
Данный сегмент отвечает за создание диска.
Доступные типы дисков можно посмотреть с помощью команды OpenStack CLI:
volume_type | Описание |
---|---|
ko1-high-iops, dp1-high-iops |
Диски типа high-IOPS-SSD в зонах MS1 и DP1 соответственно. |
ko1-ssd, dp1-ssd |
Диски типа SSD в зонах MS1 и DP1 соответственно. |
ssd |
Геораспределенный SSD. |
ms1, dp1 |
Диски типа hdd в зонах MS1 и DP1 соответственно. |
ceph |
Геораспределенный HDD. |
Доступные образы и их UUID можно посмотреть командой OpenStack CLI:
Получить список доступных конфигураций можно через CLI, командой:
Собранная конфигурация будет иметь вид
После создания виртуальной машины запускается процесс подготовки ее к использованию. Пример удаленного подключения и выполнения cli команд:
Также можно выводить артефакты, например, IP адрес сети ext-net, который получила ВМ. Для этого нужно добавить следующее:
Для подтверждения того, что конфигурация развертывания составлена верно, необходимо выполнить команду:
Произойдет тестовое подключение, проверка на доступность ресурсов, проверка синтаксиса .tf, и выведен список изменений (add, change, destroy).
Команда для развертывания конфигураци ( только если тестовое подключение успешно завершено):
Опишите вашу задачу, и мы поможем вам ее решить