Format convention cho file cấu hình Terraform với `fmt`

Format convention cho file cấu hình Terraform với `fmt`Cuongquach.com | Bài viết liên quan đến việc đưa các file cấu hình Terraform đang có “coding convention” cực kì xấu thậm tệ về một “coding convention” đẹp đẽ dễ nhìn hơn.

terraform-fmt

Sử dụng Terraform fmt để format convention

Giả sử bạn có một file cấu hình Terraform khởi tạo VPC AWS đơn giản như thế này chẳng hạn.

# vi main.tf

provider "aws" {
  version = ">= 2.35.0"
}

# Terraforms state
terraform {
  backend "s3" {}
}

# Create AWS VPC in Region
locals {
    tag_name       =    "VPC-LAB-CUONGQUACH"
}

resource "aws_vpc" "this_vpc" {
  cidr_block             =    "10.10.0.0/16"
     instance_tenancy         =    "default"
      enable_dns_support         =   true
  enable_dns_hostnames   =    true
    enable_classiclink        =    true

  tags   =   {
    Name       =   "${local.tag_name}"
    Terraform    =   "True"
  }
}

Bạn chạy terraform plan vẫn sẽ ngon lành, vì không có gì sai ở trên cả. Nhưng bạn có thấy nó các cú pháp trình bày trong phần cấu hình trên, nếu không được chú ý xử lý các khoảng cách trắng giữa các config và giá trị của nó thì cực kì xấu không ? Cái này thường liên quan đến thuật ngữ “Code convention“.

Terraform hỗ trợ bạn một cú pháp lệnh (terraform fmt) giúp các file cấu hình Terraform tự động canh chỉnh lại toàn bộ các khoảng trắng, vị trí block,.. cho đẹp mắt. Coding convention thường không giúp code chạy nhanh hơn, nhưng nó giúp duy trì code dễ đọc hơn. Chuẩn format mà Terraform mong muốn thể hiện bạn có thể tham khảo tại : https://www.terraform.io/docs/configuration/style.html

Lưu ý:
– Thường khi code Terraform mình sẽ xài các plugin IDE Terraform format lại chuẩn convention mà Terraform mong muốn.
– Còn nếu bạn lười hoặc không cài được plugin thì có thể sử dụng trực tiếp lệnh terraform fmt.

Cú pháp lệnh (tham khảo):

terraform fmt [options] [DIR]

Thực hành lệnh như sau.

# terraform fmt -recursive
main.tf

# cat main.tf

provider "aws" {
  version = ">= 2.35.0"
}

# Terraforms state
terraform {
  backend "s3" {}
}

# Create AWS VPC in Region
locals {
  tag_name = "VPC-LAB-CUONGQUACH"
}

resource "aws_vpc" "this_vpc" {
  cidr_block           = "10.10.0.0/16"
  instance_tenancy     = "default"
  enable_dns_support   = true
  enable_dns_hostnames = true
  enable_classiclink   = true

  tags = {
    Name      = "${local.tag_name}"
    Terraform = "True"
  }
}

Một lệnh thôi bạn đã format lại convention cho file cấu hình Terraform trông đẹp đẽ rồi đấy.

Nguồn: https://cuongquach.com/

Previous articleKiểm tra dung lượng các database trong PosgreSQL
Next articleKiểm tra cấu hình Terraform với `validate`
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !