Подготовка
Ознакомьтесь со статьей – Terraform быстрый старт.
Выполните все действия по настройке провайдера, составлению основных конфигурационных файлов.
Добавить описание ресурсов
После блока авторизации provider "openstack" {} необходимо добавить следующее:
openstack_compute_keypair_v2
resource "openstack_compute_keypair_v2" "keypair" {
name = "my_key_pair_name"
public_key = "ssh-rsa AAAAB*******6GKKbfoUIi8R/Db1BSPJwkqB"
}
- Свойство
nameявляется обязательным. public_key– указывается имеющийся открытый ключ.
Блок создания инстанса имеет следующую конструкцию:
openstack_compute_instance_v2
resource "openstack_compute_instance_v2" "instance" {
name = "instance"
image_name = "Ubuntu 22.04"
flavor_name = "4vcpu.8ram"
key_pair = openstack_compute_keypair_v2.keypair.name
}
openstack_compute_keypair_v2.keypair.name – обращение к соседнему модулю.
Запуск развертывания
После добавления нового ресурса, стоит проверить корректность выполнения команды – terraform plan:
# openstack_compute_keypair_v2.keypair will be created
+ resource "openstack_compute_keypair_v2" "keypair" {
+ fingerprint = (known after apply)
+ id = (known after apply)
+ name = "my_key_pair_name"
+ private_key = (sensitive value)
+ public_key = "ssh-rsa AAAAB*******6GKKbfoUIi8R/Db1BSPJwkqB"
+ region = (known after apply)
+ user_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 осторожно, во избежание непредвиденных последствий!