The available selectable options could also be checked using the Opnstack CLI commands : $ openstack keypair list
$ openstack image list
$ openstack flavor list
$ openstack network list |
Write configuration filesCreate a directory for your configuration and change directory into it: $ mkdir terraform-create-vm
$ cd terraform-create-vm |
Create the main configuration file to define the infrastructure:
Open the main.tf file in a text editor and fill it as needed like in the following example : # Define required providers
terraform {
required_version = ">= 0.14.0"
required_providers {
openstack = {
source = "terraform-provider-openstack/openstack"
version = "~> 1.53.0"
}
}
}
# Configure the OpenStack Provider
provider "openstack" {
# ...
}
resource "openstack_compute_instance_v2" "server-name" {
name = "server-name"
image_name = "image-name"
flavor_name = "flavor-name"
key_pair = "key-name"
security_groups = ["secgroup-name-1", "secgroup-name-2", ...]
network {
name = "network-name"
}
}
|
Replace the following fields as desired: - server-name
- image-name
- flavor-name
- key-name
- secgroup-name-1 , secgroup-name-2
- network-name
For instance for ECMWF can be : resource "openstack_compute_instance_v2" "test-server" {
name = "test-server"
image_name = "Rocky-9.4-20240717094419"
flavor_name = "2cpu-2gbmem-30gbdisk"
key_pair = "mykey"
security_groups = ["default", "ssh"]
network {
name = "private-cci1-ewcloud-ms-nmhs-project"
}
} |
Run Terraform to create a VMInitialize the directory :
Review the required changes:
Apply the changes to create the VM :
Status can be then seen via:
Destroy the VMThe created VM can be then destroyed by simply running:
|