Chuyển đến nội dung chính

Bài đăng

Hiển thị các bài đăng có nhãn terraform là gì

Terraform là gì ? Tại sao DevOps cần phải biết.

Chắc hẳn các bạn DevOps cũng như developer hay Solution Architect đã từng nghe qua và làm việc với terraform.  Vậy terraform là gì ?  Terraform là công cụ mã nguồn mở của công ty HashiCorp, công ty này theo mình nhớ thì có nhiều sản phẩm mã nguồn mở cho anh em DevOps xài như : Consul, Packer, Vargant, ....  Terraform chưa phải là ngôn ngữ mà theo mình thì terraform có dạng theo script language hoặc nó là configuration language. Scripting language như chúng ta biết là : Bash script, Powershell, python script, perl script, .....  Terraform là theo dạng configuration language hơn là một scripting language. Nó được định nghĩa là :    HashiCorp Configuration Language (HCL)  . Theo minh thấy thì terraform hiện nay các công ty đang cần nhiều và có xu hướng chuyển sang dùng terraform bởi vì :  + Terraform hỗ trợ nhiều cloud platform như : AWS amazon web service, Azure Microsoft, Google CLoud và cả như VMWare, Digital Ocean,....  + Cấu trúc đơn giản, có thể lên copy trên terraform.io là có thể

Định nghĩa các biến số đầu vào trong terraform.

  Trong terraform bạn định nghĩa các biến số bằng cách tạo một file variables.tf trong thư mục terraform.  File đó có dạng như sau :  variable "resource_group_name" { default = "myTFResourceGroup" } Trong file này ta định nghĩa biến số là : resource_group_name có giá trị mặc định là: myTFResourceGroup. Giá trị của biến số đã được định nghĩa nên ta không cần phải nhập vào.  Bây giờ ta cập nhật cấu hình terraform của bạn với biến số của bạn định nghĩa ở trên.  resource "azurerm_resource_group" "rg" { + name = var.resource_group_name - name = "myTFResourceGroup" location = "westus2" tags = { Environment = "Terraform Getting Started" Team = "DevOps" } } Lúc này name của resource được lấy từ file variables.tf  Apply cấu hình terraform :  $ terraform apply Terraform used the selected providers to generate the following execution plan. Resource actions are indicate

Cách tạo các tác vụ liên kết trong terraform.

 Trong quá trình provisioning một hạ tầng nào đó các bước khởi tạo một thành phần hay một service phải theo từng tự trước sau.   Trong terraform cũng có quá trình như vậy.   Trong bài viết này mình đề cập đến việc tạo các tác vụ tài nguyên và tác vụ module liên kết với nhau như thế nào.   Trong hầu hết việc tạo các tác vụ liên kết thì trong terraform phỏng đoán việc sắp xếp tạo các tài nguyên phụ thuộc vào các cấu hình đã đưa sẵn. Cho nên những tài nguyên được tạo và được xóa theo một từng tự có sẵn.  Tuy nhiên trong một số trường hơp thì terraform không thể phỏng đoán đươc tuần tự trước sau của việc provisioning một số dịch vụ. Trong trường hợp này thì bạn sử dụng tham số : depends_on  Ví dụ bạn tạo một file main.tf như sau:  terraform { required_providers { aws = { source = "hashicorp/aws" version = "2.69.0" } } } provider aws { region = "us-west-1" } data "aws_ami" "amazon_linux" { most_rec