Khởi tạo chuỗi kí tự ngẫu nhiên trên Terraform

Khởi tạo chuỗi kí tự ngẫu nhiên trên TerraformCuongquach.com | Khi bạn sử dụng chương trình Terraform để khởi tạo các resource hạ tầng của bạn, thì có những lúc bạn phát sinh nhu cầu muốn khởi tạo một chuỗi kí tự ngẫu nhiên. Có thể dùng trong các mục đích như :

  • Tạo ra một resource với tên có tính duy nhất, nên cần kèm theo giá trị chuỗi ngẫu nhiên.
  • Tạo ra mật khẩu để setup cho database và in mật khẩu đó ra ở phần ‘output’.

Thật tốt vì Terraform có hỗ trợ ‘resources‘ để bạn thực hiện được việc đó mang tên resources random_string: LINK

khoi-tao-chuoi-ngau-nhien-terraform

Khởi tạo chuỗi kí tự ngẫu nhiên trên Terraform

Giờ ví dụ lab thì mình tạo ra 2 resource giúp khởi tạo một chuỗi kí tự chữ cái viết hoa và chuỗi kí tự toàn số, với độ dài mỗi chuỗi là 10. Mình sẽ tạo ra một máy chủ AWS EC2 Instance và tên của EC2 Instance này sẽ là sự kết hợp 2 chuỗi, còn lại ở phần tag.

Lưu ý:

  • Các bạn có thể kích hoạt các option khác nhau để phục vụ nhu cầu khởi tạo chuỗi kí tự khác nhau.

Giờ ta tạo một template Terraform phục vụ nhu cầu lab của chúng ta nào.

# vi ec2.tf
 
provider "aws" {
  access_key = "xxxxx"
  secret_key = "xxxxx"
  region     = "ap-southeast-1"
}
 
resource "random_string" "rd_upper" {
  length = 10
  upper     = true
  lower     = false
  number    = false
  special   = false
}
 
resource "random_string" "rd_number" {
  length  = 10
  upper   = false
  lower   = false
  number  = true
  special = false
}
 
resource "aws_instance" "cuongquachlab" {
  count    = 1
  ami           = "ami-0e8baaccc62ee0a9f"
  instance_type = "t2.micro"
  key_name      = "demo-key"
 
  tags = {
    Name = "EC2-${random_string.rd_upper.result}-${random_string.rd_number.result}"
    Random_Upper = "${random_string.rd_upper.result}"
    Random_Number = "${random_string.rd_number.result}"
  }
}

Giờ khởi chạy tạo ra resource EC2 Instance với thông tin có chứa chuỗi kí tự ngẫu nhiên nào.

# terraform init
# terraform plan
# terraform apply -auto-approve

Sau khi khởi tạo xong bạn có thể coi thông tin ở 2 dạng, terraform cli và giao diện EC2 console aws.

# terraform show
# aws_instance.cuongquachlab[0]:
resource "aws_instance" "cuongquachlab" {
    ami                          = "ami-0e8baaccc62ee0a9f"
    arn                          = "xxxx"
    associate_public_ip_address  = true
    availability_zone            = "ap-southeast-1b"
    cpu_core_count               = 1
    cpu_threads_per_core         = 1
    disable_api_termination      = false
    ebs_optimized                = false
    get_password_data            = false
    id                           = "i-070121203d6bfaaaa"
    instance_state               = "running"
    instance_type                = "t2.micro"
    ipv6_address_count           = 0
    ipv6_addresses               = []
    key_name                     = "demo-key"
    monitoring                   = false
    primary_network_interface_id = "eni-0711c986919dfbe96"
    private_dns                  = "ip-172-31-1-44.ap-southeast-1.compute.internal"
    private_ip                   = "172.31.1.44"
    public_dns                   = "ec2-3-1-6-211.ap-southeast-1.compute.amazonaws.com"
    public_ip                    = "3.1.6.199"
    security_groups              = [
        "default",
    ]
    source_dest_check            = true
    subnet_id                    = "subnet-55b47aaa"
    tags                         = {
        "Name"          = "EC2-YNLLKKKXBL-5098351781"
        "Random_Number" = "5098351781"
        "Random_Upper"  = "YNLLKKKXBL"
    }
    tenancy                      = "default"
    volume_tags                  = {}
    vpc_security_group_ids       = [
        "sg-d4399xxx",
    ]
 
    credit_specification {
        cpu_credits = "standard"
    }
 
    root_block_device {
        delete_on_termination = true
        encrypted             = false
        iops                  = 100
        volume_id             = "vol-0974c474f5008xxxx"
        volume_size           = 30
        volume_type           = "gp2"
    }
}
 
# random_string.rd_number:
resource "random_string" "rd_number" {
    id          = "5098351781"
    length      = 10
    lower       = false
    min_lower   = 0
    min_numeric = 0
    min_special = 0
    min_upper   = 0
    number      = true
    result      = "5098351781"
    special     = false
    upper       = false
}
 
# random_string.rd_upper:
resource "random_string" "rd_upper" {
    id          = "YNLLKKKXBL"
    length      = 10
    lower       = false
    min_lower   = 0
    min_numeric = 0
    min_special = 0
    min_upper   = 0
    number      = false
    result      = "YNLLKKKXBL"
    special     = false
    upper       = true
}

Hoặc trên giao diện AWS EC2 Console.

Thật đơn giản để bạn có thể sử dụng nhu cầu khởi tạo một chuỗi kí tự ngẫu nhiên trên Terraform phải không nào .

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

Previous articleGiáo trình Đào tạo Bảo Mật Hệ Thống Thông Tin – ĐH Bách Khoa (PDF)
Next articleEbook 100 Bài tập Lập trình Python Tiếng Việt (PDF)
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 !