본문으로 바로가기
반응형

기 구축된 오픈스택에 Terraform을 통해 인스턴스 생성 테스트 내용 

1년전에 간략하게 테스트한 것으로 내용 저장용

 

1. provider.tf

openstack keystone 관련 정보를 구성한다.

# Configure the OpenStack Provider
provider "openstack" {
  tenant_name = "admin"
  user_name   = "admin"
  password    = "admin"
  auth_url    = "http://10.80.12.14:5000"
  insecure    = "true"
  region      = "regionOne"
}

 

2. var.tf

# global variables
variable "Instance" {
  default = {
    image_id    = "74dab4a8-852c-4096-afe5-fa7a0edf265b"  # RHEL7.6
  }
}

variable "network" {
  default = {
    id          = "ab5d012c-b1d9-478c-8279-6acfff9a4c2c"
    subnet_id   = "8f03f155-30bb-4279-9558-dcba8a974c76"
  }
}

 

3. first-boot.sh

#!/bin/bash

echo "hello world"

 

4. vm_testvm1.tf

# variables
variable "testvm1" {
  default = {
    name     = "testvm1"
    az       = "AZ-0-COMP-OVS"
    vcpus    = "2"
    ram      = "2"
    disk     = "20"
  }
}

resource "openstack_networking_port_v2" "network_testvm1" {
  name               = var.testvm1["name"]
  network_id         = var.network["id"]
  admin_state_up     = "true"
}

resource "openstack_compute_flavor_v2" "flavor_testvm1" {
  name  = var.testvm1["name"]
  ram   = var.testvm1["ram"] * 1024
  vcpus = var.testvm1["vcpus"]
  disk  = var.testvm1["disk"]
}

resource "openstack_compute_instance_v2" "vm_testvm1" {
  name              = var.testvm1["name"]
  availability_zone = var.testvm1["az"]
  image_id          = var.Instance["image_id"]
  flavor_id         = openstack_compute_flavor_v2.flavor_testvm1.id
  user_data         = file("first-boot.sh")
  config_drive      = "true"
  network {
    port = openstack_networking_port_v2.network_testvm1.id
  }
}

 

5. 결과

terraform plan 결과

 

VM 생성시 user-data로 구성한 "hello world" 동작 확인

728x90

'IaC (Automation) > Terraform' 카테고리의 다른 글

terraform OpenStack 리소스 생성 샘플  (0) 2021.06.29
CentOS7 Terraform install Guide  (0) 2021.06.29