Подготовка
Ознакомитесь со статьей – Terraform быстрый старт.
Выполните все действия по настройке провайдера, составлению основных конфигурационных файлов.
Добавить описание ресурсов
openstack_images_image_v2
resource "openstack_images_image_v2" "image" {
name = "RancherOS"
# image_source_url = "https://releases.rancher.com/os/latest/rancheros-openstack.img"
local_file_path = "rancheros-openstack.img"
container_format = "bare"
disk_format = "raw"
min_disk_gb = "20"
min_ram_mb = "8192"
visibility = "private"
}
В примере описан процесс закачки образа в облако, который используется для разворачивания виртуальных машин (инстансов).
name – указывается имя образа;
- Существует несколько вариантов указания источника закачки образа.
- Одновременно указывать стоит только один из них.
image_source_url– ресурс, к которому можно обратиться и скачать образ в облако.local_file_path– локальное расположение образа.- В примере образ находится в папке проекта.
container_format– обязательный параметр с указанием формата образа.- Примеры – “ami”, “ari”, “aki”, “bare“, “ovf”.
disk_format– обязательный параметр формат диска.- Примеры – “ami”, “ari”, “aki”, “vhd”, “vmdk”, “raw“, “qcow2”, “vdi”, “iso”.
Опционально возможно указать параметры для запуска системы.
По ним проверяются соответствия шаблона, ресурсов и диска.
min_disk_gb – минимальный размер диска для установки образа в Гб.
min_ram_mb – минимальный размер оперативной памяти для установки образа в мегабайтах.
visibility – параметр, отвечающий за видимость вашего образа. Рекомендуется использовать private.
Запуск развертывания
После добавления нового ресурса, стоит проверить корректность выполнения команды – terraform plan:
# openstack_images_image_v2.image will be created
+ resource "openstack_images_image_v2" "image" {
+ checksum = (known after apply)
+ container_format = "bare"
+ created_at = (known after apply)
+ disk_format = "raw"
+ file = (known after apply)
+ hidden = false
+ id = (known after apply)
+ image_cache_path = "/home/**/.terraform/image_cache"
+ image_id = (known after apply)
+ local_file_path = "rancheros-openstack.img"
+ metadata = (known after apply)
+ min_disk_gb = 20
+ min_ram_mb = 8192
+ name = "RancherOS"
+ owner = (known after apply)
+ properties = (known after apply)
+ protected = false
+ region = (known after apply)
+ schema = (known after apply)
+ size_bytes = (known after apply)
+ status = (known after apply)
+ update_at = (known after apply)
+ updated_at = (known after apply)
+ visibility = "private"
}
Удостоверившись, что ресурсы планируются создаться или удалиться, в зависимости от файла состояний, можно перейти к развертыванию:
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 осторожно, во избежание непредвиденных последствий!