DevOps AI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud
No Result
View All Result
DevOpsAI
No Result
View All Result
Home DevOps & Cloud

Tạo dự án Terraform module chuẩn cơm mẹ nấu

Best practices for using Terraform

Quân Nguyễn by Quân Nguyễn
25 Tháng 4, 2025
in DevOps & Cloud
0
Share on FacebookShare on Twitter

Trong bài viết trước mình có chia sẽ nhanh cách tạo một module trong Terraform theo một cách rất là nghiệp dư.



Bài viết cũ


Cách khởi tạo Terraform module

Trong bài này mình muốn bổ sung thêm một vài ý trong quá trình mình học được, để bài viết ngày càng chỉnh chu hơn.

Related Post

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

7 Tháng 6, 2025
cdk terraform

CDK cho Terraform

29 Tháng 4, 2025

Đổi MTU cho Calico trong Kubernetes

30 Tháng 4, 2025

Tắt NLA trên Amazon EC2 Windows instance

30 Tháng 4, 2025

Chuẩn bị môi trường dev

Để tăng tính thuận tiện, mình có chuẩn bị ở đây một file được gọi là Makefile, file này chứa shell script dùng để gọi nhanh những lệnh thường dùng, (bạn có thể dùng alias nhưng setup với makefile sẽ đồng bộ với nhóm của bạn).

Swiss knife of Teraform

				
					.DEFAULT_GOAL := help # Default target
TERRAFORM_OK := $(shell type -p terraform 2>&1) #Check terraform installed
GENERATE_VAR_OK := $(shell type -p scratchrelaxtv 2>&1) #Check scratchrelaxtv installed
TFENV_OK := $(shell type -p tfenv 2>&1) #Check tfenv installed
TFDOCS_OK := $(shell type -p terraform-docs 2>&1) #Check tfenv installed
NODE_OK := $(shell type -p node 2>&1) #Check nodejs installed
help:
	@echo "Usage: make [args]"
	@echo "Other commands: "
	@echo " * make check    	   -  dependency check is installed. "
	@echo " * make tfver    	   -  check version terraform. "
	@echo " * make tfver ver=x.x.x -  switch version terraform. "
	@echo " * make lint    		   -  lint code terraform. "
	@echo " * make docs    		   -  generate documentation from Terraform modules in README.md. "
	@echo " * make genvar  		   -  extract variables from main.tf and generate a variables.tf file. "
	@echo " * make genvar/tfvars   -  generate .tfvars with Terraform vars. "
	@echo " * make genmodule       -  scaffolding/boilerplate generator for new Terraform module projects. "
check: Terraform-exists Scratchrelaxtv-exists TFenv-exists TFdocs-exists Node-exists Generator-tf-module-exists
Terraform-exists:
	@if [ -z $(TERRAFORM_OK) ]; then echo "terraform could not be found. "; exit 2; fi
Scratchrelaxtv-exists:
	@if [ -z $(GENERATE_VAR_OK) ]; then echo "scratchrelaxtv could not be found. See https://github.com/YakDriver/scratchrelaxtv"; exit 2; fi
TFenv-exists:
	@if [ -z $(TFENV_OK) ]; then echo "tfenv could not be found. See https://github.com/tfutils/tfenv"; exit 2; fi
TFdocs-exists:
	@if [ -z $(TFDOCS_OK) ]; then echo "terraform-docs could not be found. See https://github.com/terraform-docs/terraform-docs "; exit 2; fi
Node-exists:
	@if [ -z $(NODE_OK) ]; then echo "node could not be found. See https://nodejs.org/en/download/ "; exit 2; fi
lint:
	terraform fmt -recursive .
genvar:
	scratchrelaxtv -cf
genvar/tfvars:
	scratchrelaxtv -t
docs:
	terraform-docs markdown table --output-file README.md --output-mode inject .
.PHONY: tfver
tfver:
	tfenv install $(ver) && tfenv use $(ver) && terraform -v
genmodule:
	npx -p yo -p generator-tf-module -c 'yo tf-module'
				
			

Để sử dụng bạn tạo file với tên là Makefile trong thư mục dự án. sau đó cài đặt make

Đối với macOS:

				
					brew install make
				
			

Một số công cụ cần thiết

Khi sử dụng terraform bạn cũng sẻ cần dùng thêm một số công cụ hổ trợ, makefile có thể hiểu là một macro cho các công cụ đó.

tfenv: dùng để quản lý version của terrformterraform-docs: dùng để generate file README từ các modules Terraform.scratchrelaxtv: dùng để trích xuất các biến từ main.tf và tạo tệp variable.tf hoặc file  *.tfvars.generator-tf-module: dùng để tạo bộ khung cho các dự án modules Terraform mới.

Bắt đầu dự án module TF

tại thư mục làm việc của bạn. lưu ý phải có file tên là Makefile. Bạn chay lệnh sau để kiểm tra các gói phụ thuộc đã được cài hay chưa

				
					make check
				
			

Cài đặt terraform theo verison

các bạn chạy lệnh sau

				
					make tfver ver=x.x.x
				
			

tạo dự án module

các bạn chạy lệnh sau.

				
					make genmodule
				
			

sau đó nhập các thôn tin cần thiết cho dự án.

thư mục dự án sẻ trông như thế này.

				
					.
├── README.md
├── example
│   ├── main.tf
│   ├── outputs.tf
│   └── variables.tf
├── main.tf
├── outputs.tf
├── test
│   └── example_test.go
└── variables.tf
				
			

Trong thư mục dự án bao gồm các tệp như sau

.editorconfig:  dùng để chuẩn hóa các cấu hình của IDE, tăng trãi nghiệm đồng nhất giữa các thành viên trong nhóm.

example: thư mục này dùng để hướng dẫn cách sử dụng module

README:  không thể nào thiếu tệp này.

.gitignore: một file cũng quang trọng không kém, hạn chế đưa những thứ không cần thiết lên git repo.

test: dùng để test module của bạn. Nếu không cần bạn có thẻ xóa nó đi.

Tạo  file variables.tf

giả sử mình có một tệp main.tf như sau

mình muốn nhanh chóng tạo file variables.tf từ các biến trên. Mình sẽ copy Makefile vào thư mục dự án sau đó chạy lệnh

				
					make genvar
				
			

ngay lập tức mình sẽ có file variables.tf như sau

Tạo README

Sau khi mình hoàn thiện modules mình chạy lên sau để tạo README.

				
					make docs
				
			

file README sẽ trông như sau.

Chuyển đổi version TF

Trong một số trường hợp cần dùng một phiên bả TF cụ thể bạn có thể sử dụng lệnh dưới đây để chuyển đến phiên bản phù hợp.

				
					make tfver ver=x.x.x
				
			

Hy vọng chia sẻ của mình sẻ có ích với bạn. Chúc bạn thành công.

Tags: công cụgithướng dẫnkiến trúcsetupterraform
Quân Nguyễn

Quân Nguyễn

Related Posts

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên
Bảo mật

DevOpsify Check Tool – Công cụ dòng lệnh đa năng cho DevOps, IT và lập trình viên

by devopsify
7 Tháng 6, 2025
cdk terraform
DevOps & Cloud

CDK cho Terraform

by Quân Nguyễn
29 Tháng 4, 2025
Đổi MTU cho Calico trong Kubernetes
DevOps & Cloud

Đổi MTU cho Calico trong Kubernetes

by Hiếu Tạ
30 Tháng 4, 2025
Next Post

Người sáng lập của Docker vừa cho ra sản phẩm mới

Để lại một bình luận Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended

Các website demo hay được sử dụng cho thực hành Automation Test

Các website demo hay được sử dụng cho thực hành Automation Test

11 Tháng 6, 2025
Cài đặt Maven trên Windows

Cài đặt Maven trên Windows

11 Tháng 6, 2025
Tổng hợp các phiên bản Stable Diffusion: So sánh, tính năng và yêu cầu phần cứng

Tổng hợp các phiên bản Stable Diffusion: So sánh, tính năng và yêu cầu phần cứng

13 Tháng 6, 2025
Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

Hướng dẫn cài đặt Kubernetes trên Ubuntu 22.04

1 Tháng 5, 2025
Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent

16 Tháng 6, 2025
MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật

16 Tháng 6, 2025
DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

13 Tháng 6, 2025
GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

GitHub Action DevOpsify Check Tool – Tự động kiểm tra bảo mật & hiệu suất

11 Tháng 6, 2025
DevOpsify

Cộng đồng DevOps Việt Nam chia sẽ kiến thức giúp tăng tốc quá trình phát triển ứng dụng và tự động hóa trong lĩnh vực Cloud DevOps & AI.

Bài viết mới

  • Sử dụng VS Code và Playwright MCP tự động test demo website Demoblaze thông qua GitHub Copilot Agent
  • MCP server 2025 tốt nhất : Hướng dẫn chọn & bảo mật
  • DevOpsify Check Tool hỗ trợ MCP – Tự động hóa kiểm tra qua AI Claude & VS Code

Categories

  • AI & Automation
  • Bảo mật
  • Chưa phân loại
  • DevOps & Cloud
  • Tin tức
No Result
View All Result
  • Home
  • Bảo mật
  • AI & Automation
  • DevOps & Cloud
  • Bộ đề luyện thi cloud

© 2025 DevOpsify