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

Bài đăng

Đang hiển thị bài đăng từ Tháng 10, 2025

Terraform: Hướng dẫn triển khai ASP.NET Core lên Azure bằng Docker + Terraform - Part 4

Trong bài này, chúng ta sẽ cùng đi qua toàn bộ quy trình DevOps cơ bản cho một ứng dụng ASP.NET Core, bao gồm: Tạo project ASP.NET Core Viết file Dockerfile, build và run image ở local Push image lên Docker Hub Tạo các file Terraform (variables.tf, main.tf, outputs.tf) để triển khai container lên Azure Container Instance Tạo project ASP.NET Core Mở terminal và chạy dotnet new webapp -o AspNetCoreGettingStarted cd AspNetCoreGettingStarted dotnet run Ở bước này, bạn chú ý trong folder bin, sẽ có dll là AspNetCoreGettingStarted.dll. Ở bước tạo Dockerfile, chúng ta sẽ sử dụng EntryPoint trỏ tới dll này Tạo file Dockerfile Trong thư mục project, tạo file Dockerfile. Ở đây mình sử dụng Alpine Linux – phiên bản nhẹ, tối ưu cho container. # syntax=docker/dockerfile:1 # Stage 1: Build application FROM mcr.microsoft.com/dotnet/sdk:9.0-alpine AS build-env WORKDIR /app # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ R...

Terraform: Dùng Terraform gọi PowerShell để chạy Docker Compose - Part 3

Thông thường Terraform dùng để quản lý hạ tầng (Infrastructure as Code) — ví dụ tạo VM, network, AKS, EKS,... Nhưng đôi khi ta cần chạy thêm các lệnh cục bộ (local), chẳng hạn: Tự động chạy Docker Compose khi hạ tầng đã sẵn sàng. Dừng các container (docker compose down) khi ta terraform destroy. Gọi script PowerShell hay bash sau khi apply xong. → Khi đó, ta dùng null_resource + local-exec provisioner của Terraform. Cấu trúc file ví dụ project-root/ ├── backend/ │ └── program.cs │ └── *.* ├── frontend/ │ ├── app.js │ └── *.* └── main.tf └── compose.yaml └── *.* Trong đó:  main.tf: chứa logic Terraform compose.yaml: mô tả Docker services File main.tf terraform { required_version = ">= 1.4.0" required_providers { null = { source = "hashicorp/null" version = "~> 3.0" } } } resource "null_resource" "run_compose" { # triggers: đảm bảo Terraform biết khi nào cần re-run triggers = { compos...

Terraform: "Hello Terraform!" đầu tiên trên VS Code - Part 2

Terraform là công cụ Infrastructure as Code (IaC) giúp bạn quản lý hạ tầng (server, container, cloud...) bằng code. Chúng ta sẽ đi qua các phần Cài extension HashiCorp Terraform cho VS Code Hiểu cú pháp cơ bản trong Terraform (HCL – HashiCorp Configuration Language) Hiểu về null provider và null_resource.  Viết và chạy ví dụ đầu tiên — "Hello Terraform!" Thực thi các command Terraform quan trọng. Cài đặt Extension Terraform trong VS Code Trong Visual Studio Code, bạn nhấn Ctrl + Shift + X để mở Extensions, tìm "HashiCorp Terraform" Sau khi cài xong, VS Code sẽ hỗ trợ: Tô màu cú pháp (syntax highlighting) Tự động gợi ý (intellisense) Kiểm tra lỗi cú pháp .tf Format code bằng lệnh Shift + Alt + F  Cú pháp Terraform (HCL) Terraform dùng ngôn ngữ HCL – HashiCorp Configuration Language, có 3 thành phần chính: Blocks: là một đơn vị cấu hình cơ bản, được viết bằng Ngôn ngữ Cấu hình HashiCorp (HCL), dùng để xác định và quản lý các khía cạnh khác nhau của cơ sở hạ tầng. Các ...

Terraform: Terraform là gì? - Part 1

Terraform là gì? Terraform là một công cụ nguồn mở, được phát triển bởi HashiCorp, dùng để quản lý cơ sở hạ tầng dưới dạng mã (IaC - Infrastructure as Code). Công cụ này cho phép người dùng định nghĩa, xây dựng, thay đổi và quản lý các tài nguyên như máy chủ, mạng và cơ sở dữ liệu một cách tự động bằng cách viết các tệp cấu hình. Terraform giúp tự động hóa việc cung cấp và cập nhật cơ sở hạ tầng, kể cả trên nhiều nhà cung cấp đám mây khác nhau.  Hiểu đơn giản Thay vì bạn phải: Vào Azure Portal → click tạo VM, network, resource group… ➡️ Với Terraform, bạn viết file .tf (Terraform file) để mô tả mọi thứ. Cài đặt Terraform hỗ trợ nhiều hệ điều hành khác nhau như Windows, Linux, MacOS, Solaris, FreeBSD và OpenBSD... Bài viết này sẽ hướng dẫn các bạn cài trên hệ điều hành Windows Download: https://developer.hashicorp.com/terraform/install Phần tải Terraform cho Windows, với hai tùy chọn: 386 → dành cho máy 32-bit AMD64 → dành cho máy 64-bit (các CPU hiện đại: Intel, AMD, Ryzen, v.v.)...