Подготовка
Ознакомьтесь со статьей – Terraform быстрый старт.
Выполните все действия по настройке провайдера, составлению основных конфигурационных файлов.
Добавить описание ресурсов
После блока авторизации provider “openstack” {} необходимо добавить следующее:
resource "openstack_blockstorage_volume_v3" "vol" {
name = "my_myvol"
description = "my volume"
size = 100
}
Для создания раздела (volume) требуется описать ресурс openstack_blockstorage_volume_v3.
Необходимо указать его имя (name volume) и его размер в “size”. Размер указывается в гигабайтах.
Можно указать описание раздела (volume) в “description” по желанию.
После выполнения будет создан раздел (volume) размером 100 Гб.
Монтирование тома
Для этого требуется воспользоваться ресурсом:
resource "openstack_compute_volume_attach_v2" "attached" {
instance_id = openstack_compute_instance_v2.instance.id
volume_id = openstack_blockstorage_volume_v3.vol.id
}
- Для того, чтобы примонтировать том к созданной ВМ, требуется описать ресурс
openstack_compute_volume_attach_v2, в котором необходимо указать 2 ID. - Один от инстанса, другой от созданного тома.
- Используя обращение к другому ресурсу через
openstack_compute_instance_v2.instance.idиopenstack_blockstorage_volume_v3.vol.idможно сразу получить ID вновь созданных ресурсов.
Запуск развертывания
После добавления нового ресурса, стоит проверить корректность выполнения команды – terraform plan:
terraform plan
# openstack_blockstorage_volume_v3.vol will be created
+ resource "openstack_blockstorage_volume_v3" "vol" {
+ attachment = (known after apply)
+ availability_zone = (known after apply)
+ id = (known after apply)
+ metadata = (known after apply)
+ name = "my_myvol"
+ region = (known after apply)
+ size = 100
+ volume_type = (known after apply)
}
# openstack_compute_volume_attach_v2.attached will be created
+ resource "openstack_compute_volume_attach_v2" "attached" {
+ device = (known after apply)
+ id = (known after apply)
+ instance_id = (known after apply)
+ region = (known after apply)
+ volume_id = (known after apply)
}
Удостоверившись, что ресурсы планируются создаться или удалиться, в зависимости от файла состояний, можно перейти к развертыванию:
terraform apply
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value:
Подтвердите выполнение командой yes.
Ресурсы создадутся, и информация будет добавлена в новый файл состояний.
Если какие-то ресурсы удалены из кода, но они присутствуют в файле состояния, то они будут удалены!
Применяйте команду terraform plan осторожно, во избежание непредвиденных последствий!