
Bạn sẽ học được gì trong bài này?
Trong bài học đầu tiên của khóa học, bạn sẽ tìm hiểu cách cài đặt Terraform trên hệ điều hành CentOS để chuẩn bị môi trường cho toàn bộ các bài thực hành triển khai hạ tầng AWS bằng Infrastructure as Code (IaC). Bạn sẽ thực hiện quá trình download Terraform từ trang chủ HashiCorp, cài đặt công cụ vào hệ thống và cấu hình để có thể sử dụng Terraform ở mọi vị trí trong Linux.
Việc cài đặt đúng Terraform là bước nền tảng trước khi chúng ta bắt đầu xây dựng và tự động hóa hạ tầng AWS. Sau khi hoàn thành bài học này, bạn sẽ có một môi trường làm việc sẵn sàng cho tất cả các bài học và bài thực hành trong khóa học.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Terraform trong việc triển khai hạ tầng theo mô hình Infrastructure as Code (IaC).
Tải xuống phiên bản Terraform phù hợp từ trang chủ HashiCorp.
Giải nén gói cài đặt Terraform trên hệ điều hành Linux.
Hiểu vai trò của biến môi trường PATH trong Linux.
Cài đặt file thực thi Terraform vào thư mục thuộc biến môi trường PATH.
Chạy Terraform từ bất kỳ vị trí nào trên hệ điều hành mà không cần chỉ định đường dẫn tuyệt đối.
Kiểm tra phiên bản hệ điều hành Linux trước khi cài đặt Terraform.
Kiểm tra phiên bản Terraform sau khi cài đặt bằng lệnh terraform -version.
Xác nhận Terraform đã được cài đặt và hoạt động chính xác trên CentOS.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách cài đặt và kiểm tra Terraform trên Linux theo đúng Best Practices, sẵn sàng cho các bài học triển khai hạ tầng AWS bằng Terraform trong những phần tiếp theo của khóa học.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu cách cấp quyền truy cập AWS cho Terraform để Terraform có thể tự động triển khai và quản lý các tài nguyên trên AWS. Đây là một bước cấu hình quan trọng trước khi bắt đầu xây dựng hạ tầng bằng Infrastructure as Code (IaC), bởi Terraform chỉ có thể tạo, cập nhật hoặc xóa tài nguyên khi được cấp đầy đủ quyền thông qua hệ thống AWS Identity and Access Management (IAM).
Bạn sẽ được giới thiệu hai phương pháp xác thực phổ biến nhất trong thực tế: sử dụng IAM User với Access Key và Secret Access Key, hoặc sử dụng IAM Role gắn trực tiếp vào một EC2 Instance đóng vai trò là Terraform Controller. Mỗi phương pháp đều có ưu điểm riêng và được áp dụng trong những môi trường triển khai khác nhau.
Sau bài học này, bạn sẽ có thể:
Hiểu vì sao Terraform cần quyền truy cập để quản lý tài nguyên AWS.
Hiểu vai trò của AWS Identity and Access Management (IAM) trong việc phân quyền.
Hiểu các quyền cần thiết để Terraform có thể tạo, cập nhật và xóa tài nguyên AWS.
Tìm hiểu phương pháp sử dụng IAM User cho Terraform.
Tạo một IAM User dành riêng cho Terraform.
Gán các IAM Policy cần thiết cho Terraform User.
Hiểu vai trò của Access Key và Secret Access Key trong quá trình xác thực.
Hiểu cách Terraform sử dụng thông tin xác thực để truy cập AWS.
Tìm hiểu phương pháp sử dụng IAM Role cho Terraform.
Tạo một EC2 IAM Role với các quyền phù hợp.
Gắn IAM Role vào một EC2 Instance làm Terraform Controller.
Hiểu cơ chế Terraform tự động lấy thông tin xác thực từ Instance Metadata Service (IMDS) khi chạy trên EC2.
So sánh ưu điểm và hạn chế của phương pháp IAM User và IAM Role.
Hiểu khi nào nên sử dụng IAM User và khi nào nên sử dụng IAM Role trong môi trường thực tế.
Áp dụng các nguyên tắc bảo mật khi cấp quyền cho Terraform theo mô hình Least Privilege.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách lựa chọn và cấu hình phương pháp xác thực phù hợp để Terraform có thể quản lý tài nguyên AWS một cách an toàn, hiệu quả và theo đúng AWS Security Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ chuẩn bị Terraform Controller để sẵn sàng triển khai hạ tầng AWS bằng cách cài đặt các công cụ cần thiết, bao gồm Python, PIP, Ansible và AWS CLI trên hệ điều hành Linux CentOS. Đồng thời, bạn cũng sẽ cấu hình môi trường làm việc, tạo thư mục lưu trữ các Terraform và Ansible Templates, cũng như thiết lập thông tin xác thực để AWS CLI có thể giao tiếp với tài khoản AWS.
Đây là bước chuẩn bị quan trọng trước khi bắt đầu tự động hóa hạ tầng bằng Terraform và Ansible. Sau khi hoàn thành bài học này, bạn sẽ có một môi trường làm việc hoàn chỉnh để triển khai, cấu hình và quản lý các dịch vụ AWS một cách hiệu quả.
Sau bài học này, bạn sẽ có thể:
Hiểu vì sao một số ứng dụng yêu cầu SELinux được cấu hình phù hợp hoặc vô hiệu hóa.
Kiểm tra trạng thái cấu hình của SELinux trên CentOS.
Cập nhật hệ điều hành trước khi cài đặt các công cụ cần thiết.
Cài đặt Python 3.11 và kiểm tra phiên bản Python.
Hiểu vai trò của PIP trong việc quản lý các gói Python.
Cài đặt và nâng cấp PIP.
Sử dụng PIP để cài đặt và quản lý các Python Packages.
Tạo thư mục làm việc để lưu trữ các Terraform Templates và Ansible Playbooks.
Tải xuống file cấu hình ansible.cfg từ GitHub.
Cài đặt Ansible bằng PIP.
Cài đặt Ansible thông qua trình quản lý gói của CentOS và so sánh các phương pháp cài đặt.
Kiểm tra phiên bản và xác nhận Ansible đã được cài đặt thành công.
Cài đặt AWS CLI phiên bản 2 trên Linux.
Cài đặt và sử dụng các công cụ hỗ trợ như unzip.
Kiểm tra phiên bản AWS CLI sau khi cài đặt.
Cấu hình thông tin xác thực cho AWS CLI bằng lệnh aws configure.
Hiểu vai trò của Access Key ID, Secret Access Key, Region và Output Format trong AWS CLI.
Kiểm tra khả năng kết nối giữa AWS CLI và tài khoản AWS.
Liệt kê các EC2 Instances bằng lệnh aws ec2 describe-instances.
Xác nhận Terraform Controller đã sẵn sàng để triển khai và quản lý hạ tầng AWS.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách xây dựng một Terraform Controller hoàn chỉnh với Python, Ansible và AWS CLI, đồng thời cấu hình môi trường làm việc và xác thực với AWS theo đúng Best Practices, sẵn sàng cho các bài thực hành triển khai hạ tầng AWS bằng Terraform và Ansible.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ làm quen với những lệnh Terraform quan trọng nhất mà bạn sẽ sử dụng xuyên suốt quá trình triển khai hạ tầng AWS bằng Infrastructure as Code (IaC). Đây là những lệnh nền tảng giúp bạn khởi tạo dự án, kiểm tra mã nguồn, định dạng Terraform code, xem trước những thay đổi sẽ diễn ra và cuối cùng triển khai hạ tầng lên môi trường AWS một cách an toàn.
Các lệnh được giới thiệu trong bài học này là quy trình làm việc chuẩn của hầu hết các kỹ sư DevOps và Cloud khi sử dụng Terraform trong môi trường doanh nghiệp. Việc hiểu rõ mục đích của từng lệnh sẽ giúp bạn hạn chế lỗi, kiểm soát tốt quá trình triển khai và làm việc hiệu quả hơn trong các dự án thực tế.
Sau bài học này, bạn sẽ có thể:
Hiểu quy trình làm việc (Workflow) cơ bản khi sử dụng Terraform.
Hiểu vai trò của lệnh terraform init.
Khởi tạo một thư mục dự án Terraform.
Tải xuống các Providers, Modules và Plugins cần thiết.
Hiểu vai trò của Terraform Backend trong việc lưu trữ trạng thái hạ tầng.
Biết vì sao terraform init luôn phải được thực hiện trước khi triển khai hạ tầng.
Hiểu mục đích của lệnh terraform fmt.
Định dạng Terraform Code theo chuẩn của HashiCorp.
Duy trì tính nhất quán của mã nguồn khi làm việc theo nhóm và quản lý bằng Git.
Hiểu mục đích của lệnh terraform validate.
Kiểm tra lỗi cú pháp và lỗi cấu hình trong Terraform Code.
Xác thực tính hợp lệ của các Terraform Templates trước khi triển khai.
Hiểu vai trò của lệnh terraform plan.
Xem trước các thay đổi mà Terraform sẽ thực hiện trên hạ tầng AWS.
Hiểu cách Terraform so sánh trạng thái hiện tại với trạng thái mong muốn của hạ tầng.
Lưu kế hoạch triển khai vào tệp bằng tùy chọn -out.
Hiểu những lưu ý về thông tin nhạy cảm khi lưu Terraform Plan.
Hiểu vai trò của lệnh terraform apply.
Triển khai hạ tầng AWS từ Terraform Code.
Xác nhận kế hoạch triển khai trước khi Terraform tạo tài nguyên.
Hiểu quy trình triển khai hạ tầng an toàn theo mô hình Plan → Review → Apply.
Áp dụng các lệnh Terraform theo đúng quy trình làm việc trong môi trường doanh nghiệp.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách sử dụng các lệnh cốt lõi của Terraform để khởi tạo dự án, kiểm tra mã nguồn, xem trước kế hoạch triển khai và triển khai hạ tầng AWS theo đúng HashiCorp Best Practices, tạo nền tảng vững chắc cho toàn bộ các bài học tiếp theo trong khóa học.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu cách cấu hình Terraform S3 Backend để lưu trữ Terraform State trên dịch vụ Amazon S3. Thay vì lưu file trạng thái trên máy tính cục bộ, bạn sẽ học cách lưu trữ trạng thái hạ tầng trên AWS, giúp nhiều thành viên trong nhóm phát triển có thể làm việc với cùng một dự án Terraform một cách nhất quán và an toàn.
Việc sử dụng Remote Backend là một trong những Best Practices quan trọng khi triển khai hạ tầng bằng Terraform trong môi trường doanh nghiệp. Đây cũng là nền tảng để xây dựng các quy trình tự động hóa, CI/CD và cộng tác nhóm khi quản lý hạ tầng trên AWS.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Terraform State trong việc quản lý hạ tầng.
Hiểu mục đích của Terraform Backend.
Phân biệt Local Backend và Remote Backend.
Hiểu lợi ích của việc lưu trữ Terraform State trên Amazon S3.
Tạo một Amazon S3 Bucket để lưu trữ Terraform State.
Cấu hình S3 Backend trong file backend.tf.
Hiểu chức năng của các tham số như bucket, key, region và profile.
Hiểu cách Terraform sử dụng S3 để lưu trữ và quản lý trạng thái hạ tầng.
Hiểu hạn chế khi sử dụng biến (Variables) trong khối cấu hình Backend.
Khởi tạo lại dự án Terraform sau khi cấu hình Backend bằng terraform init.
Xác nhận Terraform đã kết nối thành công với S3 Backend.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra và duy trì cấu trúc mã nguồn Terraform theo chuẩn của HashiCorp.
Áp dụng mô hình lưu trữ Terraform State tập trung để hỗ trợ làm việc nhóm và quản lý hạ tầng hiệu quả.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách cấu hình Terraform S3 Backend để lưu trữ Terraform State trên Amazon S3 theo đúng HashiCorp Best Practices, tạo nền tảng cho việc quản lý hạ tầng AWS an toàn, nhất quán và dễ dàng mở rộng trong môi trường doanh nghiệp.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu về AWS Provider trong Terraform và cách khai báo nhiều AWS Providers để triển khai hạ tầng trên nhiều AWS Regions. Đây là một kỹ thuật rất quan trọng khi xây dựng các hệ thống Multi-Region, Disaster Recovery (DR) hoặc CI/CD Pipeline cần triển khai tài nguyên tại nhiều khu vực khác nhau của AWS.
Bạn cũng sẽ tìm hiểu cách tổ chức dự án Terraform bằng cách tách riêng các files cấu hình như variables.tf và providers.tf, sử dụng Variables để tăng khả năng tái sử dụng mã nguồn, đồng thời khám phá cách Terraform tải xuống và quản lý các Provider Plugins sau khi khởi tạo dự án.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Terraform Provider trong quá trình triển khai hạ tầng.
Hiểu cách Terraform sử dụng Providers để giao tiếp với AWS APIs.
Hiểu mối quan hệ giữa Terraform Core và Provider Plugins.
Khai báo một hoặc nhiều AWS Providers trong dự án Terraform.
Hiểu mục đích của thuộc tính alias khi sử dụng nhiều Providers.
Cấu hình nhiều AWS Regions trong cùng một dự án Terraform.
Xây dựng nền tảng cho việc triển khai hạ tầng Multi-Region.
Tạo và quản lý file variables.tf.
Định nghĩa các biến như AWS Profile và AWS Region.
Hiểu lợi ích của việc sử dụng Variables để tăng khả năng tái sử dụng Terraform Code.
Tạo và cấu hình tệp providers.tf.
Liên kết Providers với các biến đã khai báo trong dự án.
Khởi tạo dự án bằng lệnh terraform init.
Hiểu quá trình Terraform tải xuống Providers và Plugins.
Khám phá cấu trúc của thư mục .terraform.
Kiểm tra các Provider Plugins đã được tải xuống.
Hiểu vai trò của các tệp nhị phân (Binary Plugins) trong Terraform.
Hiểu cách Terraform sử dụng Provider Plugins để quản lý tài nguyên AWS.
Áp dụng mô hình quản lý nhiều Providers trong các dự án Terraform quy mô lớn.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách khai báo và quản lý nhiều AWS Providers, cấu hình triển khai hạ tầng trên nhiều AWS Regions, đồng thời hiểu cơ chế hoạt động của Terraform Provider Plugins theo đúng HashiCorp Best Practices, tạo nền tảng cho các bài học triển khai hạ tầng đa vùng trong những phần tiếp theo của khóa học.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ triển khai các thành phần mạng đầu tiên cho dự án AWS bằng Terraform, bao gồm Virtual Private Cloud (VPC), Internet Gateway (IGW) và Public Subnets trên hai AWS Regions khác nhau. Đây là nền tảng hạ tầng mạng để chúng ta tiếp tục triển khai các dịch vụ như EC2, Jenkins, Load Balancer và các thành phần khác trong những bài học tiếp theo.
Bạn cũng sẽ tìm hiểu cách Terraform quản lý sự phụ thuộc giữa các tài nguyên, cách sử dụng Data Sources để lấy thông tin từ AWS, cũng như thực hành kiểm tra và xác thực Terraform Code trước khi triển khai hạ tầng.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Amazon VPC trong kiến trúc mạng của AWS.
Triển khai nhiều VPC trên các AWS Regions khác nhau bằng Terraform.
Cấu hình CIDR Block cho từng VPC.
Bật DNS Support và DNS Hostnames trong VPC.
Sử dụng Tags để quản lý và nhận diện tài nguyên AWS.
Tạo và gắn Internet Gateway (IGW) cho từng VPC.
Hiểu vai trò của Internet Gateway trong việc kết nối VPC với Internet.
Sử dụng Terraform Data Sources để lấy danh sách Availability Zones (AZs).
Hiểu cách hoạt động của data "aws_availability_zones".
Tạo nhiều Public Subnets trong các Availability Zones khác nhau.
Sử dụng hàm element() để lựa chọn Availability Zone cho Subnets.
Liên kết Subnets với VPC tương ứng.
Triển khai hạ tầng mạng trên nhiều AWS Regions bằng nhiều AWS Providers.
Hiểu cách Terraform tự động quản lý mối quan hệ phụ thuộc giữa các tài nguyên.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra lỗi cú pháp và cấu hình bằng terraform validate.
Xem trước kế hoạch triển khai bằng terraform plan.
Hiểu nguyên nhân và cách khắc phục lỗi Unclosed Configuration Block.
Hiểu vai trò của các dòng Comment (#) trong Terraform Code để tăng khả năng đọc và bảo trì mã nguồn.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách xây dựng nền tảng mạng trên AWS bằng Terraform, triển khai VPC, Internet Gateway và Public Subnets trên nhiều AWS Regions, đồng thời kiểm tra và xác thực Terraform Code theo đúng HashiCorp Best Practices, tạo nền tảng vững chắc cho các bài học triển khai hạ tầng AWS tiếp theo
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tiếp tục xây dựng hạ tầng mạng AWS bằng cách thiết lập kết nối VPC Peering giữa hai AWS Regions và cấu hình Route Tables để các VPC có thể giao tiếp với nhau thông qua kết nối mạng cục bộ của AWS. Đây là một thành phần quan trọng trong các kiến trúc Multi-Region, giúp các tài nguyên ở nhiều khu vực địa lý khác nhau có thể trao đổi dữ liệu mà không cần đi qua Internet.
Bạn cũng sẽ tìm hiểu cách Terraform tạo và chấp nhận kết nối VPC Peering, cấu hình các tuyến đường (Routes), ghi đè bảng định tuyến mặc định của VPC và kiểm tra toàn bộ cấu hình trước khi triển khai hạ tầng.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của VPC Peering trong kiến trúc mạng AWS.
Hiểu lợi ích của việc kết nối các VPC giữa nhiều AWS Regions.
Tạo VPC Peering Connection bằng Terraform.
Cấu hình kết nối giữa hai VPC thuộc hai AWS Regions khác nhau.
Hiểu ý nghĩa của các tham số như vpc_id, peer_vpc_id và peer_region.
Chấp nhận yêu cầu kết nối bằng tài nguyên aws_vpc_peering_connection_accepter.
Hiểu cơ chế Auto Accept khi hai VPC thuộc cùng một AWS Account.
Tạo Route Table cho từng VPC.
Cấu hình Route đến Internet Gateway để cho phép truy cập Internet.
Cấu hình Route thông qua VPC Peering Connection để các VPC có thể giao tiếp với nhau.
Hiểu cách định tuyến lưu lượng giữa các CIDR Blocks của nhiều VPC.
Sử dụng Lifecycle Block và ignore_changes để kiểm soát vòng đời của tài nguyên.
Hiểu lý do sử dụng ignore_changes trong quá trình quản lý Route Tables.
Ghi đè Main Route Table mặc định của VPC bằng aws_main_route_table_association.
Liên kết Route Table mới với từng VPC.
Hiểu cách Terraform cập nhật bảng định tuyến mặc định của VPC.
Hoàn thiện cấu hình mạng Multi-Region cho dự án.
Kiểm tra và định dạng Terraform Code bằng terraform fmt.
Xác thực cấu hình bằng terraform validate.
Xem trước kế hoạch triển khai hạ tầng bằng terraform plan.
Hiểu quy trình triển khai kết nối mạng giữa nhiều AWS Regions theo mô hình Infrastructure as Code (IaC).
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách thiết lập Multi-Region VPC Peering, cấu hình Route Tables và xây dựng kết nối mạng riêng giữa nhiều VPC trên AWS theo đúng AWS Networking và HashiCorp Best Practices, tạo nền tảng cho việc triển khai các hệ thống phân tán và kiến trúc đa vùng trong môi trường doanh nghiệp.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ sử dụng Terraform để triển khai các AWS Security Groups nhằm bảo vệ hạ tầng mạng của dự án Jenkins Multi-Region trên AWS. Bạn sẽ xây dựng các Security Groups cho Application Load Balancer (ALB), Jenkins Master và Jenkins Worker, đồng thời cấu hình các quy tắc Inbound và Outbound để kiểm soát lưu lượng truy cập giữa Internet, Load Balancer và các máy chủ Jenkins.
Việc thiết kế Security Groups đúng ngay từ đầu là một trong những yêu cầu quan trọng để xây dựng hệ thống AWS an toàn, đảm bảo chỉ những lưu lượng hợp lệ mới được phép truy cập vào các tài nguyên trong VPC, đồng thời vẫn cho phép các thành phần của hệ thống giao tiếp với nhau phục vụ quá trình triển khai CI/CD.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của AWS Security Group trong việc bảo vệ hạ tầng AWS.
Hiểu mô hình lưu lượng truy cập từ Internet đến Application Load Balancer (ALB) và Jenkins.
Tạo Security Group cho Application Load Balancer bằng Terraform.
Cấu hình Inbound Rules cho phép truy cập HTTP (TCP/80) và HTTPS (TCP/443).
Cấu hình Outbound Rules cho phép ALB truy cập ra Internet.
Hiểu ý nghĩa của Ingress Rules và Egress Rules trong Terraform.
Hiểu cách sử dụng giao thức -1 để cho phép tất cả các giao thức trong Security Group.
Tạo Security Group cho Jenkins Master.
Cấu hình truy cập SSH (TCP/22) bằng biến external_ip.
Hiểu lợi ích của việc sử dụng Terraform Variables để quản lý địa chỉ IP truy cập.
Cấu hình Security Group để chỉ cho phép Application Load Balancer truy cập Jenkins Master qua cổng TCP/8080.
Sử dụng Security Group ID thay vì CIDR Block để tăng tính bảo mật.
Cho phép Jenkins Master giao tiếp với Jenkins Worker thông qua mạng riêng giữa các VPC.
Tạo Security Group cho Jenkins Worker.
Cấu hình Jenkins Worker chỉ cho phép kết nối từ Jenkins Master.
Cho phép Jenkins Worker truy cập Internet thông qua Outbound Rules.
Hiểu nguyên tắc Least Privilege khi thiết kế Security Groups.
Quản lý Terraform Variables trong tệp variables.tf.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra lỗi cấu hình bằng terraform validate.
Xem trước các thay đổi bằng terraform plan.
Hiểu cách Terraform chỉ tạo thêm các tài nguyên mới mà không ảnh hưởng đến hạ tầng hiện có.
Triển khai Security Groups bằng terraform apply.
Hiểu mục đích và rủi ro khi sử dụng tùy chọn --auto-approve trong môi trường Production.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách thiết kế và triển khai AWS Security Groups bằng Terraform, bảo vệ các thành phần như Application Load Balancer, Jenkins Master và Jenkins Worker, đồng thời áp dụng các nguyên tắc bảo mật theo đúng AWS Security Best Practices và HashiCorp Best Practices trong môi trường doanh nghiệp.
Bạn sẽ học được gì trong bài thực hành này?
Trong bài thực hành này, bạn sẽ sử dụng Terraform để triển khai hoàn chỉnh một hệ thống mạng Multi-Region trên AWS. Bạn sẽ thực hành xây dựng hạ tầng mạng bao gồm VPC, Public Subnets, Internet Gateway (IGW), Route Tables (RTs), Security Groups (SGs) và VPC Peering để kết nối các VPC giữa nhiều AWS Regions. Đây là một bài lab tổng hợp giúp bạn vận dụng toàn bộ kiến thức đã học trong các bài trước vào một dự án thực tế.
Bên cạnh việc triển khai hạ tầng, bạn cũng sẽ thực hành quy trình làm việc chuẩn với Terraform, từ việc tải mã nguồn dự án, khởi tạo môi trường, kiểm tra cấu hình, triển khai hạ tầng, xác minh kết quả trên AWS và cuối cùng là xóa toàn bộ tài nguyên nhằm tối ưu chi phí và duy trì môi trường học tập sạch sẽ.
Sau bài thực hành này, bạn sẽ có thể:
Đăng nhập vào Terraform Controller thông qua SSH.
Kiểm tra phiên bản Terraform đang sử dụng.
Clone mã nguồn Terraform từ GitHub.
Làm việc với cấu trúc thư mục của một dự án Terraform.
Khởi tạo môi trường làm việc bằng terraform init.
Tải xuống Providers, Plugins và Backend cần thiết cho dự án.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra cú pháp và cấu hình bằng terraform validate.
Xem trước kế hoạch triển khai bằng terraform plan.
Triển khai toàn bộ hạ tầng bằng terraform apply.
Xây dựng hệ thống mạng Multi-Region trên AWS.
Triển khai Amazon VPC tại nhiều AWS Regions.
Tạo Public Subnets cho các VPC.
Triển khai Internet Gateway (IGW) để kết nối Internet.
Cấu hình Route Tables (RTs) cho từng VPC.
Thiết lập VPC Peering giữa các AWS Regions.
Triển khai và cấu hình AWS Security Groups (SGs).
Xác minh các tài nguyên đã được tạo bằng AWS CLI hoặc AWS Management Console.
Xóa toàn bộ hạ tầng bằng terraform destroy.
Hiểu quy trình quản lý toàn bộ vòng đời hạ tầng bằng Infrastructure as Code (IaC) với Terraform.
Đây là một bài thực hành quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài thực hành này, bạn sẽ có thể tự xây dựng và quản lý một hệ thống mạng Multi-Region trên AWS bằng Terraform, bao gồm VPC, Subnets, Internet Gateway, Route Tables, Security Groups và VPC Peering, đồng thời thực hiện đầy đủ quy trình triển khai, kiểm tra và hủy hạ tầng theo đúng AWS Best Practices và HashiCorp Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu cách sử dụng AWS Systems Manager (SSM) Parameter Store kết hợp với Terraform Data Sources để tự động lấy AMI ID mới nhất của hệ điều hành Amazon Linux. Đây là một kỹ thuật rất quan trọng giúp bạn triển khai EC2 Instances mà không cần phải ghi nhớ hoặc cập nhật thủ công các AMI IDs mỗi khi AWS phát hành phiên bản mới.
Bạn cũng sẽ hiểu cách Terraform sử dụng Data Sources để truy vấn các thông tin đã tồn tại trên AWS, cách AWS cung cấp các Public Parameters cho nhiều hệ điều hành phổ biến và cách những dữ liệu này được lưu trong Terraform State để phục vụ cho việc triển khai các EC2 Instances của Jenkins Master và Jenkins Worker trong các bài học tiếp theo.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Terraform Data Sources.
Phân biệt Data Sources và Resources trong Terraform.
Hiểu mục đích của AWS Systems Manager (SSM) Parameter Store.
Hiểu lợi ích của việc sử dụng Public Parameters do AWS cung cấp.
Truy vấn AMI ID mới nhất của Amazon Linux bằng AWS CLI.
Sử dụng lệnh aws ssm get-parameters-by-path để khám phá các AMI Parameters.
Hiểu cấu trúc của các SSM Parameter Endpoints.
Sử dụng Data Source aws_ssm_parameter trong Terraform.
Truy xuất AMI ID cho nhiều AWS Regions khác nhau.
Cấu hình nhiều AWS Providers để lấy AMI theo từng Region.
Hiểu vì sao cùng một Parameter Endpoint sẽ trả về các AMI IDs khác nhau ở mỗi AWS Region.
Tạo và quản lý tệp instances.tf để chuẩn bị triển khai EC2 Instances.
Hiểu cách truy cập giá trị AMI thông qua thuộc tính .value của Data Source.
Hiểu cách Terraform thực hiện các API Calls đến AWS để lấy dữ liệu.
Phân tích kết quả của terraform plan đối với các Data Sources.
Hiểu rằng Data Sources chỉ truy vấn dữ liệu và không tạo mới tài nguyên AWS.
Hiểu cách Terraform lưu thông tin Data Sources trong Terraform State.
Kiểm tra Terraform State được lưu trong Amazon S3 Backend.
Hiểu cách các AMI IDs sẽ được tái sử dụng trong quá trình triển khai EC2 Instances.
Áp dụng phương pháp tự động cập nhật AMI giúp hạ tầng luôn sử dụng các phiên bản Amazon Linux mới nhất theo đúng Best Practices.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách sử dụng AWS Systems Manager (SSM) Parameter Store và Terraform Data Sources để tự động lấy AMI ID mới nhất cho nhiều AWS Regions, giúp việc triển khai EC2 Instances trở nên linh hoạt, nhất quán và dễ bảo trì theo đúng AWS Best Practices và HashiCorp Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu cách sử dụng Terraform để tạo và quản lý AWS EC2 Key Pairs, giúp bạn có thể xác thực và truy cập an toàn vào các EC2 Instances thông qua giao thức SSH. Đây là một bước chuẩn bị quan trọng trước khi triển khai Jenkins Master và Jenkins Worker trong các bài học tiếp theo.
Bạn cũng sẽ tìm hiểu quy trình tạo cặp khóa RSA trên Linux bằng OpenSSH, cách đăng ký Public Key với AWS bằng Terraform và cách gắn Key Pair vào EC2 Instances trong quá trình khởi tạo. Việc quản lý Key Pairs bằng Infrastructure as Code giúp toàn bộ quá trình triển khai hạ tầng trở nên tự động, nhất quán và dễ dàng tái sử dụng.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của AWS EC2 Key Pair trong việc xác thực SSH.
Hiểu cấu trúc của một Public Key và Private Key.
Hiểu cách AWS sử dụng Public Key để xác thực người dùng.
Hiểu vì sao Private Key cần được lưu trữ và bảo vệ cẩn thận.
Tạo cặp khóa SSH trên Linux bằng ssh-keygen.
Hiểu các tham số của lệnh ssh-keygen.
Tạo khóa RSA 2048-bit tương thích với yêu cầu của AWS.
Hiểu vị trí lưu trữ mặc định của các tệp khóa trong thư mục .ssh.
Sử dụng Terraform Resource aws_key_pair.
Đăng ký Public Key với AWS bằng hàm file().
Tạo EC2 Key Pair cho nhiều AWS Regions.
Hiểu vì sao EC2 Key Pair là tài nguyên theo từng AWS Region.
Quản lý Key Pair cho Jenkins Master và Jenkins Worker.
Hiểu cách Key Pair được gắn vào EC2 Instance trong quá trình khởi tạo.
Hiểu lý do Key Pair phải tồn tại trước khi EC2 Instance được tạo.
Chuẩn bị Key Pair để sử dụng trong quá trình triển khai Jenkins bằng Terraform.
Hiểu mối liên hệ giữa Key Pair và quá trình SSH vào EC2 Instances.
Xóa toàn bộ tài nguyên bằng terraform destroy.
Hiểu vai trò của terraform destroy --auto-approve trong việc dọn dẹp môi trường thực hành sau khi hoàn thành bài lab.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách tạo và quản lý AWS EC2 Key Pairs bằng Terraform, chuẩn bị cơ chế xác thực an toàn cho các EC2 Instances và sẵn sàng triển khai Jenkins Master và Jenkins Worker theo đúng AWS Security Best Practices và HashiCorp Best Practices
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ sử dụng Terraform để triển khai các Amazon EC2 Instances dành cho Jenkins Master và Jenkins Worker trên nhiều AWS Regions. Bạn sẽ kết hợp toàn bộ các thành phần đã xây dựng ở các bài học trước như Amazon Linux AMI, EC2 Key Pair, Security Groups, Subnets, Route Tables và VPC để tạo nên một hệ thống Jenkins hoàn chỉnh sẵn sàng cho việc cài đặt ứng dụng.
Ngoài ra, bạn cũng sẽ học cách sử dụng Terraform Variables để xây dựng hạ tầng linh hoạt, tạo nhiều Jenkins Worker bằng một đoạn mã duy nhất, sử dụng Terraform Outputs để hiển thị địa chỉ IP Public của các EC2 Instances và quản lý thứ tự triển khai các tài nguyên bằng depends_on.
Sau bài học này, bạn sẽ có thể:
Hiểu cách sử dụng Terraform Resource aws_instance để tạo Amazon EC2 Instances.
Triển khai Jenkins Master EC2 Instance trên AWS.
Triển khai Jenkins Worker EC2 Instances trên nhiều AWS Regions.
Sử dụng Amazon Linux AMI được lấy tự động từ AWS Systems Manager (SSM) Parameter Store.
Gắn EC2 Key Pair vào EC2 Instances để phục vụ kết nối SSH.
Gắn Security Groups cho từng EC2 Instance.
Gắn EC2 Instances vào đúng Subnets đã được tạo trước đó.
Cấu hình Public IP Address để cho phép quản trị từ xa qua SSH.
Sử dụng Terraform Variables để quản lý loại EC2 Instance (instance-type).
Sử dụng biến workers-count để triển khai nhiều Jenkins Worker cùng lúc.
Hiểu cách hoạt động của tham số count trong Terraform.
Tự động tạo nhiều EC2 Instances từ một Resource Block duy nhất.
Sử dụng count.index để tạo tên duy nhất cho từng Jenkins Worker.
Kết hợp hàm join() để sinh Name Tags động cho nhiều EC2 Instances.
Hiểu vai trò của Tags trong việc quản lý tài nguyên AWS.
Chuẩn bị Name Tags để sử dụng với Dynamic Inventory của Ansible trong các bài học tiếp theo.
Sử dụng depends_on để kiểm soát thứ tự triển khai các tài nguyên.
Đảm bảo EC2 chỉ được tạo sau khi Route Tables đã được cấu hình hoàn chỉnh.
Đảm bảo Jenkins Worker chỉ được triển khai sau khi Jenkins Master đã được tạo.
Khai báo và quản lý biến trong tệp variables.tf.
Hiểu cách sử dụng Terraform Output Blocks.
Hiển thị địa chỉ Public IP của Jenkins Master sau khi triển khai.
Hiển thị danh sách Public IP của tất cả Jenkins Worker bằng vòng lặp for.
Hiểu sự khác biệt giữa Map và List trong Terraform.
Hiểu cách Terraform sử dụng For Expressions để xử lý nhiều tài nguyên cùng lúc.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra cú pháp bằng terraform validate.
Xem trước kế hoạch triển khai bằng terraform plan.
Chuẩn bị hạ tầng EC2 hoàn chỉnh để cài đặt Jenkins và triển khai hệ thống CI/CD trong các bài học tiếp theo.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách triển khai Amazon EC2 Instances cho Jenkins Master và Jenkins Worker bằng Terraform, sử dụng Variables, Outputs, Dynamic Resource Creation và Dependencies để xây dựng một hạ tầng AWS linh hoạt, dễ mở rộng và sẵn sàng cho việc tự động hóa triển khai ứng dụng theo đúng AWS Best Practices và HashiCorp Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu cách sử dụng Terraform Provisioners để tự động gọi Ansible Playbooks sau khi các EC2 Instances được triển khai thành công. Đây là bước kết nối giữa Infrastructure as Code (Terraform) và Configuration Management (Ansible), giúp toàn bộ quá trình triển khai hạ tầng và cấu hình máy chủ được tự động hóa hoàn toàn.
Bạn cũng sẽ tìm hiểu cách cấu hình Ansible Dynamic Inventory cho AWS, sử dụng AWS EC2 Tags để xác định máy chủ đích, cài đặt AWS Boto3 SDK, và sử dụng Terraform Local Provisioner để gọi các Playbooks cài đặt phần mềm trên Jenkins Master và Jenkins Worker ngay sau khi các EC2 Instances sẵn sàng hoạt động.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Terraform Provisioners trong quá trình triển khai hạ tầng.
Phân biệt Create-Time Provisioners và Destroy-Time Provisioners.
Hiểu cơ chế Tainted Resources khi Provisioner thực thi thất bại.
Phân biệt Local Provisioner và Remote Provisioner.
Hiểu khi nào nên sử dụng local-exec và remote-exec.
Hiểu vai trò của Terraform trong việc phối hợp với Ansible.
Xây dựng các Ansible Playbooks cho Jenkins Master và Jenkins Worker.
Hiểu cấu trúc cơ bản của một Ansible Playbook.
Sử dụng các tham số như hosts, remote_user, become và become_user.
Cài đặt phần mềm trên EC2 bằng các mô-đun Ansible như yum.
Hiểu ý nghĩa của các trạng thái present và absent trong Ansible.
Tổ chức thư mục Ansible Templates trong dự án Terraform.
Cấu hình Ansible Dynamic Inventory cho AWS.
Kích hoạt plugin aws_ec2 trong Ansible.
Hiểu vai trò của file cấu hình tf_aws_ec2.yml.
Cấu hình Dynamic Inventory để truy vấn nhiều AWS Regions.
Sử dụng AWS EC2 Tags để tự động tạo nhóm máy chủ trong Ansible.
Cài đặt AWS Boto3 Python SDK để hỗ trợ Ansible Dynamic Inventory.
Sử dụng Terraform Local Provisioner (local-exec) để gọi Ansible Playbooks.
Chờ EC2 Instance đạt trạng thái sẵn sàng bằng lệnh aws ec2 wait instance-status-ok.
Truyền biến vào Ansible Playbook bằng tham số --extra-vars.
Hiểu cách sử dụng đối tượng self trong Terraform Provisioners.
Sử dụng self.tags.Name để truyền tên EC2 Instance vào Dynamic Inventory.
Hiểu cách Ansible tự động ánh xạ EC2 Name Tag thành địa chỉ IP thông qua Dynamic Inventory.
Tự động cấu hình Jenkins Master và Jenkins Worker ngay sau khi EC2 được tạo.
Hiểu lợi ích của việc sử dụng Dynamic Inventory thay cho Inventory tĩnh.
Kết hợp Terraform và Ansible để xây dựng quy trình triển khai hạ tầng và cấu hình máy chủ hoàn toàn tự động.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách tích hợp Terraform Provisioners với Ansible, sử dụng Dynamic Inventory, AWS EC2 Tags và Ansible Playbooks để tự động cấu hình các EC2 Instances ngay sau khi được triển khai, xây dựng nền tảng cho một quy trình Infrastructure Automation hiện đại theo đúng AWS Best Practices, HashiCorp Best Practices và Ansible Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ sử dụng Terraform để triển khai AWS Application Load Balancer (ALB) nhằm phân phối lưu lượng truy cập đến một máy chủ Amazon EC2 chạy Apache Web Server. Bạn sẽ xây dựng đầy đủ các thành phần của một hệ thống cân bằng tải trên AWS như Application Load Balancer, Target Group, Listener và Target Group Attachment, đồng thời tích hợp chúng với hạ tầng VPC, Subnets, Security Groups và EC2 Instances đã được triển khai trong các bài học trước.
Ngoài ra, bạn cũng sẽ học cách sử dụng Terraform Variables để quản lý cấu hình linh hoạt, Terraform Outputs để hiển thị DNS Name của Load Balancer và Ansible Playbook để tự động cài đặt, khởi động Apache Web Server trên EC2. Đây là bước chuẩn bị quan trọng trước khi triển khai Jenkins và các ứng dụng thực tế phía sau Application Load Balancer trong các bài học tiếp theo.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của AWS Application Load Balancer (ALB) trong kiến trúc ứng dụng.
Triển khai Application Load Balancer bằng Terraform.
Sử dụng Terraform Resource aws_lb.
Cấu hình Internet-facing Application Load Balancer.
Gắn Security Group cho Application Load Balancer.
Cấu hình ALB hoạt động trên nhiều Subnets để đảm bảo tính sẵn sàng cao.
Hiểu lý do ALB cần được triển khai trên nhiều Availability Zones.
Khai báo biến webserver-port trong Terraform.
Sử dụng Terraform Variables để quản lý cổng dịch vụ Web Server.
Cập nhật Security Group sử dụng biến webserver-port.
Tạo ALB Target Group bằng Terraform.
Hiểu vai trò của Target Group trong việc định tuyến lưu lượng truy cập.
Cấu hình Target Group cho Amazon EC2 Instances.
Thiết lập giao thức và cổng dịch vụ cho Target Group.
Cấu hình Health Checks cho Application Load Balancer.
Hiểu ý nghĩa của các tham số như interval, path, protocol và matcher.
Hiểu cách ALB kiểm tra tình trạng hoạt động của Web Server trước khi chuyển tiếp lưu lượng.
Tạo ALB Listener để tiếp nhận HTTP Requests.
Cấu hình Listener chuyển tiếp lưu lượng đến Target Group.
Gắn Jenkins Master EC2 vào Target Group bằng aws_lb_target_group_attachment.
Hiểu cách ALB định tuyến HTTP Requests đến EC2 Instance.
Hiển thị DNS Name của Application Load Balancer bằng Terraform Outputs.
Cập nhật Ansible Playbook để cài đặt Apache Web Server.
Sử dụng Ansible để cài đặt và khởi động dịch vụ Apache (httpd).
Cấu hình Apache Web Server tự động khởi động cùng hệ thống.
Hiểu cách Terraform và Ansible phối hợp để triển khai hạ tầng và cấu hình ứng dụng.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra cú pháp bằng terraform validate.
Xem trước kế hoạch triển khai bằng terraform plan.
Chuẩn bị hạ tầng sẵn sàng để triển khai Jenkins phía sau Application Load Balancer trong các bài học tiếp theo.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách triển khai AWS Application Load Balancer bằng Terraform, cấu hình Target Groups, Listeners, Health Checks, tích hợp với Amazon EC2 và sử dụng Ansible để tự động cài đặt Web Server, từ đó xây dựng nền tảng cho các hệ thống ứng dụng có khả năng cân bằng tải, mở rộng và sẵn sàng cho việc triển khai Jenkins cũng như các ứng dụng thực tế theo đúng AWS Best Practices và HashiCorp Best Practices.
Bạn sẽ học được gì trong bài thực hành này?
Trong bài thực hành này, bạn sẽ sử dụng Terraform và Ansible để triển khai hoàn chỉnh một hệ thống Jenkins Master và Jenkins Worker trên Amazon EC2 trong nhiều AWS Regions. Bạn sẽ xây dựng toàn bộ hạ tầng theo mô hình Infrastructure as Code (IaC), bao gồm mạng, bảo mật, cân bằng tải, Jenkins server và tự động cấu hình hệ thống bằng Ansible.
Bên cạnh việc triển khai hạ tầng, bạn cũng sẽ thực hành quy trình triển khai hoàn chỉnh từ việc chuẩn bị môi trường bằng AWS CloudFormation, tạo SSH Key Pair, triển khai Terraform, kiểm tra kết quả trên AWS, truy cập Jenkins thông qua Application Load Balancer (ALB) và cuối cùng dọn dẹp toàn bộ tài nguyên để tối ưu chi phí trên AWS.
Sau bài thực hành này, bạn sẽ có thể:
Triển khai môi trường thực hành bằng AWS CloudFormation.
Đăng nhập vào Terraform Controller EC2 Instance bằng SSH.
Kiểm tra phiên bản Terraform đã được cài đặt.
Clone mã nguồn Terraform từ GitHub.
Làm việc với cấu trúc thư mục của dự án Terraform.
Tạo SSH Key Pair bằng Ansible Playbook.
Hiểu vai trò của SSH Key Pair trong việc triển khai EC2 Instances.
Khởi tạo môi trường Terraform bằng terraform init.
Tải Providers, Plugins và Backend cần thiết cho dự án.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra cú pháp Terraform bằng terraform validate.
Xem trước kế hoạch triển khai bằng terraform plan.
Triển khai toàn bộ hạ tầng bằng terraform apply.
Triển khai Jenkins Master trên Amazon EC2.
Triển khai Jenkins Worker Nodes trên nhiều AWS Regions.
Tự động cấu hình Jenkins bằng Ansible Playbooks.
Triển khai AWS Application Load Balancer (ALB) để phân phối lưu lượng truy cập.
Hiểu cách ALB chuyển tiếp lưu lượng đến Jenkins Master.
Kiểm tra các tài nguyên được tạo bằng AWS CLI hoặc AWS Management Console.
Truy cập Jenkins thông qua DNS Name của Application Load Balancer.
Đăng nhập vào Jenkins bằng tài khoản quản trị mặc định.
Hiểu quy trình kết hợp giữa Terraform và Ansible để tự động hóa việc triển khai hạ tầng và cấu hình ứng dụng.
Xóa toàn bộ tài nguyên bằng terraform destroy.
Quản lý toàn bộ vòng đời hạ tầng AWS theo mô hình Infrastructure as Code (IaC).
Đây là một bài thực hành quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài thực hành này, bạn sẽ có thể tự triển khai một hệ thống Jenkins Master và Jenkins Worker hoàn chỉnh trên AWS bằng Terraform và Ansible, tích hợp Application Load Balancer, tự động cấu hình các máy chủ và quản lý toàn bộ hạ tầng theo đúng AWS Best Practices, HashiCorp Best Practices và Ansible Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ sử dụng Terraform để triển khai hệ thống DNS và HTTPS cho ứng dụng Jenkins chạy phía sau AWS Application Load Balancer (ALB). Bạn sẽ cấu hình Amazon Route 53, AWS Certificate Manager (ACM) và HTTPS Listener để người dùng có thể truy cập Jenkins thông qua một tên miền riêng với kết nối được mã hóa bằng SSL/TLS.
Ngoài ra, bạn cũng sẽ học cách tự động xác thực chứng chỉ SSL bằng DNS Validation, cấu hình HTTP Redirect sang HTTPS, tạo Route 53 Alias Record trỏ tới ALB và sử dụng Terraform Outputs để hiển thị URL hoàn chỉnh của hệ thống sau khi triển khai. Đây là bước cuối cùng giúp hệ thống Jenkins của bạn sẵn sàng phục vụ người dùng với một kiến trúc bảo mật và chuyên nghiệp trên AWS.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Amazon Route 53 trong hệ thống DNS trên AWS.
Hiểu cách tích hợp DNS với Application Load Balancer.
Sử dụng Terraform Data Source aws_route53_zone để truy vấn Hosted Zone.
Khai báo biến dns-name để quản lý tên miền linh hoạt.
Hiểu cách làm việc với Public Hosted Zone trong Route 53.
Triển khai AWS Certificate Manager (ACM) bằng Terraform.
Yêu cầu cấp chứng chỉ SSL/TLS cho tên miền bằng ACM.
Hiểu cơ chế DNS Validation của ACM.
Tự động tạo bản ghi CNAME để xác thực chứng chỉ SSL.
Sử dụng domain_validation_options trong Terraform.
Hiểu cách sử dụng for_each để xử lý nhiều bản ghi xác thực.
Hiểu sự khác biệt giữa count và for_each trong Terraform.
Xác thực chứng chỉ ACM bằng aws_acm_certificate_validation.
Hiểu quy trình cấp phát chứng chỉ SSL tự động trên AWS.
Cấu hình Listener HTTP để tự động chuyển hướng sang HTTPS.
Hiểu ý nghĩa của HTTP Status Code 301 Permanent Redirect.
Triển khai HTTPS Listener trên cổng 443.
Gắn chứng chỉ ACM vào HTTPS Listener.
Cấu hình SSL Policy cho Application Load Balancer.
Hiểu cách ALB xử lý kết nối HTTPS.
Cấu hình Listener chuyển tiếp lưu lượng HTTPS đến Target Group.
Tạo Route 53 Alias Record trỏ tới Application Load Balancer.
Hiểu sự khác biệt giữa Alias Record và bản ghi A thông thường.
Cấu hình Route 53 đánh giá tình trạng hoạt động của ALB bằng evaluate_target_health.
Hiểu cách DNS định tuyến lưu lượng truy cập đến Application Load Balancer.
Hiển thị URL truy cập hệ thống bằng Terraform Outputs.
Hiểu cách sử dụng thuộc tính fqdn của Route 53 Record.
Kiểm tra website hoạt động thông qua HTTPS với chứng chỉ SSL hợp lệ.
Chuẩn bị hạ tầng DNS và HTTPS sẵn sàng cho việc triển khai Jenkins trong các bài học tiếp theo.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách triển khai Amazon Route 53, AWS Certificate Manager (ACM) và Application Load Balancer bằng Terraform, tự động cấu hình DNS, HTTPS, SSL/TLS Certificates và HTTP Redirect, từ đó xây dựng một hệ thống Jenkins có tên miền riêng, kết nối bảo mật và sẵn sàng phục vụ người dùng theo đúng AWS Best Practices, HashiCorp Best Practices và Security Best Practices.
Bạn sẽ học được gì trong bài thực hành này?
Trong bài thực hành này, bạn sẽ sử dụng Terraform để tạo Amazon Route 53 Alias Record nhằm định tuyến lưu lượng truy cập từ một Public Hosted Zone đến AWS Application Load Balancer (ALB). Bạn sẽ làm việc với các tài nguyên AWS đã được tạo sẵn như VPC, Subnets, Application Load Balancer và Apache Web Server, sau đó cấu hình DNS để người dùng có thể truy cập ứng dụng thông qua một tên miền thay vì sử dụng trực tiếp DNS Name của ALB.
Ngoài ra, bạn cũng sẽ học cách sử dụng Terraform Import để quản lý các tài nguyên AWS đã tồn tại, lấy thông tin Hosted Zone bằng AWS CLI, cấu hình các biến trong Terraform, triển khai hạ tầng bằng Terraform và kiểm tra hoạt động của hệ thống thông qua trình duyệt web.
Sau bài thực hành này, bạn sẽ có thể:
Triển khai môi trường thực hành bằng AWS CloudFormation.
Đăng nhập vào Terraform Controller EC2 Instance bằng SSH.
Kiểm tra phiên bản Terraform đã được cài đặt.
Clone mã nguồn Terraform từ GitHub.
Làm việc với cấu trúc thư mục của dự án Terraform.
Sử dụng tệp resource_ids.txt để thu thập thông tin các tài nguyên AWS.
Hiểu vai trò của Terraform Import trong việc quản lý tài nguyên đã tồn tại.
Cập nhật tệp import_resources.tf với các Resource IDs được cung cấp.
Hiểu cách Terraform quản lý hạ tầng hiện có trên AWS.
Sử dụng AWS CLI để lấy danh sách Route 53 Hosted Zones.
Xác định Public Hosted Zone cần sử dụng.
Cấu hình tên miền trong tệp variables.tf.
Hiểu vai trò của biến dns-name trong Terraform.
Khởi tạo môi trường Terraform bằng terraform init.
Tải Providers, Plugins và Backend cần thiết cho dự án.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra cú pháp Terraform bằng terraform validate.
Xem trước kế hoạch triển khai bằng terraform plan.
Triển khai hạ tầng bằng terraform apply.
Tạo Amazon Route 53 Alias Record bằng Terraform.
Hiểu sự khác biệt giữa Alias Record và bản ghi DNS thông thường.
Định tuyến lưu lượng truy cập từ tên miền đến Application Load Balancer.
Hiểu cách Route 53 tích hợp với AWS Application Load Balancer.
Kiểm tra ứng dụng thông qua URL được Terraform xuất ra.
Xác minh hoạt động của hệ thống bằng trình duyệt web.
Xóa toàn bộ tài nguyên bằng terraform destroy.
Quản lý toàn bộ vòng đời hạ tầng AWS theo mô hình Infrastructure as Code (IaC).
Đây là một bài thực hành quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài thực hành này, bạn sẽ có thể sử dụng Terraform để quản lý các tài nguyên AWS hiện có, tạo Amazon Route 53 Alias Records, định tuyến lưu lượng truy cập đến Application Load Balancer và triển khai hệ thống DNS cho các ứng dụng chạy trên AWS theo đúng AWS Best Practices và HashiCorp Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu một số lệnh Terraform quan trọng thường được sử dụng trong quá trình quản lý, kiểm tra và khắc phục sự cố hạ tầng, bao gồm terraform output, terraform state, terraform console và terraform graph. Bạn sẽ hiểu cách các lệnh này giúp quan sát trạng thái của hạ tầng, truy xuất thông tin tài nguyên, kiểm tra các biểu thức Terraform và trực quan hóa mối quan hệ phụ thuộc giữa các tài nguyên.
Ngoài ra, bạn cũng sẽ học cách sử dụng Terraform Output Blocks để hiển thị thông tin sau khi triển khai hạ tầng, đánh dấu các giá trị nhạy cảm bằng sensitive, tạo biểu đồ phụ thuộc của hạ tầng bằng GraphViz và áp dụng các công cụ này trong quá trình vận hành, kiểm tra và troubleshooting các dự án Terraform.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Terraform Output trong việc hiển thị thông tin sau khi triển khai hạ tầng.
Sử dụng lệnh terraform output.
Hiển thị toàn bộ các Output Values của dự án.
Hiển thị giá trị của một Output cụ thể.
Hiểu cách khai báo Output Blocks trong Terraform.
Sử dụng Output để chia sẻ dữ liệu giữa Root Module và Child Modules.
Hiểu vai trò của Terraform Outputs khi sử dụng Remote State.
Đánh dấu các Output nhạy cảm bằng thuộc tính sensitive = true.
Hiểu mục đích của lệnh terraform state.
Sử dụng lệnh terraform state list để liệt kê các tài nguyên trong State File.
Hiểu mối quan hệ giữa Terraform State và hạ tầng AWS.
Kiểm tra các tài nguyên đã được Terraform quản lý.
Sử dụng terraform console để làm việc trong môi trường tương tác.
Xem thông tin chi tiết của các Terraform Resources.
Truy cập trực tiếp các thuộc tính của tài nguyên trong Terraform Console.
Kiểm tra giá trị của các thuộc tính cụ thể như owner_id.
Thử nghiệm các Terraform Expressions trước khi sử dụng trong dự án.
Kiểm tra các Terraform Built-in Functions.
Thực hành với các hàm như join().
Hiểu vai trò của Terraform Console trong quá trình phát triển và troubleshooting.
Sử dụng lệnh terraform graph.
Tạo biểu đồ phụ thuộc giữa các tài nguyên Terraform.
Hiểu cách Terraform xác định Dependencies giữa các Resources.
Xuất biểu đồ ở định dạng DOT.
Sử dụng GraphViz để chuyển đổi tệp DOT sang hình ảnh PNG.
Hiểu cách trực quan hóa kiến trúc hạ tầng Terraform.
Phân tích mối quan hệ giữa Variables, Data Sources, Resources và Outputs thông qua biểu đồ.
Ứng dụng các lệnh Terraform trong quá trình kiểm tra, phân tích và khắc phục sự cố hạ tầng.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator, Solutions Architect và những học viên đang chuẩn bị cho các kỳ thi AWS Certified Solutions Architect – Associate (SAA-C03), AWS Certified SysOps Administrator – Associate (SOA-C02) hoặc muốn triển khai hạ tầng AWS theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách sử dụng Terraform Output, Terraform State, Terraform Console và Terraform Graph để kiểm tra, phân tích, trực quan hóa và troubleshooting hạ tầng, từ đó nâng cao khả năng quản lý các dự án Terraform theo đúng HashiCorp Best Practices và AWS Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu về Ansible Playbooks và cách kiểm tra lỗi cú pháp trước khi triển khai tự động hóa trên các máy chủ. Bạn sẽ hiểu cấu trúc cơ bản của một Playbook, vai trò của Hosts, Tasks và Modules, đồng thời học cách sử dụng lệnh ansible-playbook --syntax-check để phát hiện các lỗi cú pháp hoặc lỗi đánh máy (typos) ngay từ giai đoạn phát triển.
Ngoài ra, bạn cũng sẽ thực hành phân tích thông báo lỗi do Ansible trả về, sử dụng Linux Return Code để xác định kết quả thực thi của quá trình kiểm tra cú pháp và áp dụng quy trình này để nâng cao chất lượng Playbooks trước khi triển khai vào môi trường thực tế.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Ansible Playbooks trong tự động hóa quản trị hệ thống.
Hiểu cấu trúc cơ bản của một Ansible Playbook.
Hiểu vai trò của Hosts trong Ansible Playbooks.
Hiểu cách Playbook xác định các máy chủ mục tiêu thông qua Inventory.
Hiểu vai trò của Tasks trong Ansible.
Hiểu cách Ansible sử dụng Modules để thực hiện các tác vụ.
Sử dụng YAML để xây dựng Ansible Playbooks.
Hiểu các yêu cầu về cú pháp và định dạng của YAML.
Hiểu cách sử dụng YUM Module để quản lý phần mềm trên các hệ điều hành Red Hat, CentOS và RHEL.
Sử dụng lệnh ansible-playbook --syntax-check để kiểm tra lỗi cú pháp.
Kiểm tra Playbook trước khi triển khai thực tế.
Phân biệt giữa Warnings và Syntax Errors trong Ansible.
Hiểu nguyên nhân xuất hiện các cảnh báo khi chưa khai báo Inventory.
Đọc và phân tích thông báo lỗi do Ansible trả về.
Xác định vị trí xảy ra lỗi trong Playbook.
Phát hiện các lỗi đánh máy (Typos) trong Playbook.
Hiểu ý nghĩa của Linux Return Code sau khi thực thi lệnh.
Kiểm tra mã trả về bằng lệnh echo $?.
Hiểu ý nghĩa của Return Code bằng 0 và khác 0.
Áp dụng quy trình kiểm tra cú pháp trước khi triển khai Playbooks.
Nâng cao khả năng phát hiện và khắc phục lỗi trong quá trình phát triển Ansible Playbooks.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator và những học viên muốn xây dựng các quy trình tự động hóa hạ tầng bằng Ansible. Sau bài học này, bạn sẽ biết cách xây dựng Ansible Playbooks đúng chuẩn YAML, kiểm tra lỗi cú pháp bằng Ansible Syntax Check, phân tích các thông báo lỗi và xác minh kết quả thực thi thông qua Linux Return Codes, từ đó đảm bảo các Playbooks luôn sẵn sàng trước khi triển khai trong môi trường thực tế theo đúng Ansible Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ xây dựng một Ansible Playbook hoàn chỉnh để tự động cài đặt và cấu hình Jenkins Master trên Amazon EC2. Thay vì thực hiện thủ công từng bước cài đặt Jenkins, Java và các thành phần phụ thuộc, bạn sẽ sử dụng các Ansible Modules để tự động hóa toàn bộ quy trình, từ cài đặt phần mềm, cấu hình Jenkins, sao chép dữ liệu đã được chuẩn bị sẵn đến khởi động dịch vụ Jenkins.
Ngoài ra, bạn cũng sẽ tìm hiểu cách sử dụng Ansible Dynamic Inventory để triển khai Playbook trên các EC2 Instances được Terraform tạo ra, thực hành kiểm tra cú pháp Playbook trước khi triển khai và áp dụng các Ansible Modules phổ biến như yum, git, get_url, rpm_key, file, copy, service và shell trong một kịch bản triển khai Jenkins thực tế.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Ansible Playbooks trong việc tự động hóa triển khai ứng dụng.
Xây dựng Ansible Playbook để cài đặt Jenkins Master.
Hiểu cấu trúc của một Jenkins Master Playbook.
Cấu hình Dynamic Inventory thông qua biến passed_in_hosts.
Kết nối tới Amazon EC2 bằng ec2-user.
Sử dụng become để nâng quyền lên tài khoản root.
Cài đặt các gói phụ thuộc bằng Ansible YUM Module.
Sử dụng biến để quản lý danh sách các gói phần mềm cần cài đặt.
Cài đặt các công cụ như wget và git.
Sử dụng Git Module để clone mã nguồn từ GitHub.
Tải Jenkins Configuration đã được chuẩn bị sẵn từ Git Repository.
Thiết lập Jenkins Repository trên hệ điều hành Linux.
Tải Jenkins Repository File bằng Ansible get_url.
Import Jenkins GPG Key bằng Ansible rpm_key.
Cài đặt Java 17 (Amazon Corretto OpenJDK) cho Jenkins.
Cài đặt Jenkins bằng Ansible YUM Module.
Quản lý dịch vụ Jenkins bằng Ansible Service Module.
Dừng Jenkins trước khi thay thế cấu hình mặc định.
Xóa thư mục cấu hình Jenkins mặc định bằng File Module.
Sao chép thư mục Jenkins đã được cấu hình sẵn vào máy chủ đích.
Hiểu vai trò của tham số remote_src.
Khôi phục quyền sở hữu thư mục Jenkins cho người dùng jenkins.
Cấu hình quyền truy cập cho toàn bộ thư mục Jenkins bằng recurse.
Khởi động Jenkins sau khi hoàn tất cấu hình.
Cấu hình Jenkins tự động khởi động cùng hệ thống Linux.
Kiểm tra cú pháp Playbook bằng ansible-playbook --syntax-check.
Truyền biến vào Playbook thông qua tham số -e.
Hiểu ý nghĩa của Linux Return Code khi kiểm tra Playbook.
Xác minh Playbook không có lỗi cú pháp trước khi triển khai thực tế.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator và những học viên muốn tự động hóa việc triển khai ứng dụng bằng Ansible. Sau bài học này, bạn sẽ biết cách xây dựng một Ansible Playbook hoàn chỉnh để triển khai Jenkins Master trên Amazon EC2, tự động cài đặt các thành phần phụ thuộc, cấu hình Jenkins, quản lý dịch vụ hệ thống và kiểm tra Playbook trước khi triển khai theo đúng Ansible Best Practices và Infrastructure as Code (IaC) Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ xây dựng một Ansible Playbook để tự động cài đặt và cấu hình Jenkins Worker, đồng thời tích hợp Jenkins Worker với Jenkins Master mà không cần thực hiện các bước cấu hình thủ công. Bạn sẽ sử dụng nhiều Ansible Modules để tạo SSH Key Pair, cài đặt các thành phần phụ thuộc, cấu hình Jenkins Repository, tạo các files cấu hình từ Jinja Templates và sử dụng Jenkins CLI để tự động đăng ký Jenkins Worker trên Jenkins Master.
Ngoài ra, bạn cũng sẽ tìm hiểu cách truyền dữ liệu giữa các tác vụ thông qua Ansible Variables, Register Variables, Facts, Dynamic Inventory và Extra Variables, đồng thời kiểm tra cú pháp Playbook trước khi triển khai để đảm bảo quá trình tự động hóa diễn ra chính xác và an toàn.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Jenkins Worker trong kiến trúc Jenkins Distributed Build.
Xây dựng Ansible Playbook để triển khai Jenkins Worker.
Cấu hình Dynamic Inventory thông qua biến passed_in_hosts.
Kết nối tới Jenkins Worker EC2 bằng tài khoản ec2-user.
Nâng quyền thực thi bằng become và become_user.
Tạo SSH Key Pair bằng Ansible openssh_keypair.
Cấu hình Passwordless SSH cho Jenkins Worker.
Thêm Public Key vào tệp authorized_keys.
Sử dụng Jinja Template để tạo các tệp cấu hình động.
Hiểu vai trò của Ansible Template Module.
Sử dụng Ansible Facts như ansible_default_ipv4.address.
Tạo tệp node.xml từ Jinja Template.
Đọc nội dung Private SSH Key bằng Ansible slurp.
Hiểu cách Ansible mã hóa dữ liệu bằng Base64.
Giải mã dữ liệu với bộ lọc b64decode.
Truyền dữ liệu giữa các Tasks bằng register.
Tạo tệp creds.xml từ Jinja Template.
Cài đặt các gói phụ thuộc bằng Ansible YUM Module.
Cài đặt wget và git trên Jenkins Worker.
Cấu hình Jenkins Repository.
Import Jenkins GPG Key bằng rpm_key.
Cài đặt Java 17 (Amazon Corretto OpenJDK).
Tải Jenkins CLI bằng Ansible get_url.
Hiểu cơ chế Retry và Delay trong Ansible.
Sử dụng until, retries và ignore_errors để xử lý các tác vụ có khả năng thất bại tạm thời.
Quản lý quyền truy cập tệp bằng Ansible File Module.
Sao chép file xác thực Jenkins bằng Ansible Copy Module.
Truyền biến vào Playbook bằng --extra-vars.
Sử dụng Jenkins CLI để tạo Jenkins Credentials tự động.
Tự động đăng ký Jenkins Worker với Jenkins Master.
Hiểu quy trình tích hợp Jenkins Worker thông qua Jenkins REST/CLI.
Kiểm tra cú pháp Playbook bằng ansible-playbook --syntax-check.
Xác minh kết quả kiểm tra cú pháp thông qua Linux Return Code.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator và những học viên muốn triển khai hệ thống Jenkins CI/CD theo mô hình Infrastructure as Code (IaC). Sau bài học này, bạn sẽ biết cách xây dựng một Ansible Playbook hoàn chỉnh để tự động cài đặt Jenkins Worker, cấu hình Passwordless SSH, tạo các tệp cấu hình từ Jinja Templates, tích hợp Worker với Jenkins Master thông qua Jenkins CLI và triển khai toàn bộ quy trình theo đúng Ansible Best Practices, Jenkins Best Practices và Infrastructure as Code Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu về Jinja2 Templates và cách sử dụng chúng trong Ansible Playbooks để tạo ra các files cấu hình động. Thay vì tạo nhiều files cấu hình riêng cho từng máy chủ, bạn sẽ học cách xây dựng các mẫu (templates) có chứa biến và để Ansible tự động thay thế các giá trị tương ứng trong quá trình triển khai, giúp Playbooks trở nên linh hoạt, dễ bảo trì và có thể tái sử dụng.
Ngoài ra, bạn cũng sẽ xây dựng hai Jinja2 Templates phục vụ cho quá trình tích hợp Jenkins Worker với Jenkins Master. Bạn sẽ hiểu cách Ansible truyền các biến vào Template, sử dụng Ansible Facts và dữ liệu được tạo trong các tác vụ trước để sinh ra các tệp files hình XML hoàn chỉnh trước khi sao chép sang máy chủ Jenkins Worker.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Jinja2 Templates trong Ansible.
Hiểu mối quan hệ giữa Ansible Playbooks và Jinja2.
Hiểu cách Jinja2 giúp tạo các tệp cấu hình động.
Hiểu lợi ích của việc sử dụng Templates thay cho các tệp cấu hình tĩnh.
Hiểu quá trình Ansible render Template trước khi sao chép sang máy chủ đích.
Hiểu vai trò của Ansible Controller trong việc xử lý Jinja2 Templates.
Nhận biết định dạng tệp .j2 trong Jinja2.
Sử dụng Ansible Template Module để triển khai Templates.
Truyền biến vào Jinja2 Templates thông qua vars.
Sử dụng cú pháp {{ variable }} để truy cập biến trong Jinja2.
Sử dụng Ansible Facts như ansible_default_ipv4.address.
Hiểu cách Ansible tự động thu thập thông tin hệ thống (Facts).
Xây dựng Template node.j2 cho Jenkins Worker.
Tự động tạo tệp node.xml cho Jenkins Worker.
Tùy biến tên Jenkins Node bằng địa chỉ IP động.
Tự động cấu hình SSH Host cho Jenkins Worker.
Tạo credentialsId duy nhất cho từng Jenkins Worker.
Xây dựng Template cred-privkey.j2.
Tạo tệp creds.xml từ Jinja2 Template.
Nhúng SSH Private Key vào file XML bằng Jinja2.
Truyền dữ liệu giữa các Tasks thông qua Ansible Variables.
Sử dụng dữ liệu được tạo từ các tác vụ trước để sinh nội dung Template.
Hiểu cách Jinja2 kết hợp với Ansible slurp và register.
Tự động tạo các files cấu hình XML phục vụ Jenkins CLI.
Hiểu cách Jinja2 hỗ trợ triển khai nhiều Jenkins Workers với cùng một Template.
Xây dựng các Templates có khả năng tái sử dụng trong nhiều môi trường khác nhau.
Áp dụng Jinja2 để tự động hóa việc cấu hình hệ thống theo mô hình Infrastructure as Code (IaC).
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator và những học viên muốn tự động hóa việc triển khai hạ tầng bằng Ansible. Sau bài học này, bạn sẽ biết cách xây dựng Jinja2 Templates để tạo các tệp cấu hình động, truyền dữ liệu từ Ansible Variables, Ansible Facts và Register Variables vào Templates, từ đó triển khai Jenkins Worker một cách linh hoạt, nhất quán và có khả năng mở rộng theo đúng Ansible Best Practices, Jinja2 Best Practices và Infrastructure as Code (IaC) Best Practices.
Bạn sẽ học được gì trong bài thực hành này?
Trong bài thực hành này, bạn sẽ triển khai toàn bộ dự án Terraform và Ansible đã được xây dựng xuyên suốt khóa học để tự động tạo một hệ thống Jenkins Master, Jenkins Workers, Application Load Balancer (ALB), Route 53, HTTPS và cấu hình hoàn chỉnh môi trường CI/CD trên AWS. Bạn sẽ thực hiện các bước chuẩn bị môi trường, cập nhật Terraform Provisioners để tích hợp với các Ansible Playbooks đã xây dựng và kiểm tra toàn bộ quy trình triển khai từ đầu đến cuối.
Ngoài ra, bạn cũng sẽ học cách tích hợp Terraform với Ansible để tự động cấu hình Jenkins sau khi EC2 được tạo, truyền dữ liệu giữa Terraform và Ansible, tự động đăng ký hoặc hủy đăng ký Jenkins Workers khi hạ tầng thay đổi và kiểm tra toàn bộ hệ thống hoạt động thông qua Terraform Outputs và giao diện Jenkins.
Sau bài thực hành này, bạn sẽ có thể:
Kiểm tra các điều kiện cần thiết trước khi triển khai dự án Terraform.
Chuẩn bị môi trường Terraform Controller.
Cấu hình AWS CLI và thông tin xác thực AWS.
Xác minh phiên bản Terraform phù hợp với dự án.
Kiểm tra Ansible, Boto3 và các thành phần phụ thuộc.
Chuẩn bị SSH Key Pair phục vụ Terraform và Ansible.
Kiểm tra toàn bộ Terraform Project trước khi triển khai.
Cập nhật Terraform Provisioners để sử dụng Ansible Playbooks tùy chỉnh.
Tích hợp Terraform với Playbook cài đặt Jenkins Master.
Tích hợp Terraform với Playbook cài đặt Jenkins Worker.
Truyền Dynamic Inventory vào Ansible thông qua passed_in_hosts.
Truyền địa chỉ IP của Jenkins Master sang Jenkins Worker bằng master_ip.
Hiểu cách Terraform truyền biến cho Ansible thông qua --extra-vars.
Sử dụng Terraform Expressions trong Provisioners.
Cấu hình remote-exec Provisioner.
Hiểu vai trò của destroy-time provisioner.
Tự động hủy đăng ký Jenkins Worker khi Terraform Destroy.
Sử dụng when = destroy trong Terraform Provisioners.
Cấu hình SSH Connection cho Terraform Provisioners.
Thực thi Jenkins CLI trên Jenkins Worker.
Tự động xóa Jenkins Node khỏi Jenkins Master.
Quản lý Jenkins Workers theo mô hình tự động.
Tạo và sử dụng tệp jenkins_auth.
Hiểu vai trò của Jenkins CLI Authentication.
Cấu hình Public Hosted Zone trong Amazon Route 53.
Cập nhật biến DNS trong Terraform.
Điều chỉnh cấu hình Jenkins sử dụng cổng 8080.
Định dạng Terraform Code bằng terraform fmt.
Kiểm tra cú pháp Terraform bằng terraform validate.
Phân tích kế hoạch triển khai bằng terraform plan.
Triển khai toàn bộ hạ tầng bằng terraform apply.
Kiểm tra Jenkins Master thông qua URL được Terraform xuất ra.
Xác minh Jenkins Workers đã được đăng ký tự động.
Thử nghiệm Scale Out và Scale In Jenkins Workers bằng Terraform.
Hiểu cách Terraform đồng bộ trạng thái Jenkins với hạ tầng AWS.
Xóa toàn bộ hạ tầng bằng terraform destroy.
Hoàn thành quy trình triển khai Jenkins CI/CD theo mô hình Infrastructure as Code (IaC).
Đây là một bài thực hành quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator và những học viên muốn xây dựng một hệ thống CI/CD hoàn chỉnh trên AWS bằng Terraform và Ansible. Sau bài thực hành này, bạn sẽ có thể triển khai toàn bộ hạ tầng AWS, tự động cài đặt và cấu hình Jenkins Master, Jenkins Workers, tích hợp Application Load Balancer, Route 53, HTTPS, quản lý vòng đời Jenkins Workers bằng Terraform Provisioners và vận hành hệ thống theo đúng AWS Best Practices, HashiCorp Best Practices, Ansible Best Practices và Infrastructure as Code (IaC) Best Practices.
Bạn sẽ học được gì trong bài này?
Trong bài học này, bạn sẽ tìm hiểu các kỹ thuật Troubleshooting và Debugging trong Terraform và Ansible. Đây là những kỹ năng rất quan trọng giúp bạn nhanh chóng xác định nguyên nhân gây lỗi trong quá trình phát triển và triển khai hạ tầng theo mô hình Infrastructure as Code (IaC). Bạn sẽ học cách bật các chế độ ghi log chi tiết, phân tích thông tin debug và sử dụng các công cụ có sẵn của Terraform và Ansible để xử lý các lỗi cấu hình, lỗi kết nối và lỗi thực thi.
Ngoài ra, bạn cũng sẽ thực hành sử dụng các biến môi trường như TF_LOG, TF_LOG_PATH, ANSIBLE_DEBUG và ANSIBLE_VERBOSITY, đồng thời tìm hiểu cách điều chỉnh mức độ chi tiết của log để phục vụ cho việc phân tích, khắc phục sự cố hoặc cung cấp thông tin cho đội ngũ hỗ trợ kỹ thuật khi cần thiết.
Sau bài học này, bạn sẽ có thể:
Hiểu vai trò của Troubleshooting trong quá trình phát triển hạ tầng bằng Terraform và Ansible.
Hiểu khi nào nên sử dụng Debug Logs.
Bật chế độ ghi log chi tiết cho Terraform bằng biến TF_LOG.
Hiểu các mức độ ghi log của Terraform.
Phân biệt các mức TRACE, DEBUG, INFO, WARN và ERROR.
Hiểu vì sao TRACE là mức ghi log chi tiết nhất.
Phân tích các Terraform Internal Logs.
Theo dõi các API Calls giữa Terraform và Cloud Provider.
Ghi Terraform Debug Logs vào tệp bằng TF_LOG_PATH.
Quản lý các tệp log phục vụ quá trình Troubleshooting.
Hiểu cách sử dụng unset TF_LOG để tắt Debug Logging.
Phân tích các thông tin như Terraform Version, Provider và AWS STS API Calls.
Sử dụng terraform fmt để định dạng mã nguồn Terraform.
Kiểm tra cú pháp Terraform bằng terraform validate.
Bật chế độ Debug cho Ansible bằng ANSIBLE_DEBUG.
Hiểu ảnh hưởng của ANSIBLE_DEBUG tới hiệu năng hệ thống.
Nhận biết các rủi ro khi sử dụng Debug Logs trong môi trường Production.
Hiểu khả năng xuất hiện thông tin nhạy cảm trong Debug Logs.
Sử dụng tùy chọn -v với các lệnh ansible và ansible-playbook.
Điều chỉnh mức độ chi tiết của log bằng -v, -vv, -vvv và các mức cao hơn.
Sử dụng biến môi trường ANSIBLE_VERBOSITY.
Hiểu mối quan hệ giữa ANSIBLE_VERBOSITY và tùy chọn -v.
Phân tích quá trình kết nối SSH của Ansible tới máy chủ mục tiêu.
Theo dõi các Temporary Files và Modules mà Ansible tạo trong quá trình thực thi.
Phân tích các lỗi kết nối giữa Ansible Controller và máy chủ mục tiêu.
Kiểm tra khả năng kết nối bằng Ansible Ping Module.
Hiểu các thông tin Debug phục vụ việc phân tích lỗi kết nối.
Thu thập Debug Logs phục vụ việc gửi yêu cầu hỗ trợ kỹ thuật.
Áp dụng các kỹ thuật Troubleshooting để xử lý lỗi trong Terraform và Ansible.
Đây là một bài học quan trọng dành cho Cloud Engineer, DevOps Engineer, Platform Engineer, Site Reliability Engineer (SRE), System Administrator và những học viên đang triển khai hạ tầng bằng Terraform và Ansible. Sau bài học này, bạn sẽ biết cách sử dụng các công cụ Debugging và Troubleshooting để phân tích lỗi, theo dõi quá trình thực thi của Terraform và Ansible, kiểm tra các API Calls, kết nối tới máy chủ mục tiêu và nhanh chóng xác định nguyên nhân gây sự cố theo đúng HashiCorp Best Practices, Ansible Best Practices và Infrastructure as Code (IaC) Best Practices.
Khóa học này là một cơ hội tuyệt vời để nâng cao kỹ năng của bạn, và giúp bạn hiểu biết được cách sử dụng các công cụ mạnh mẽ như Terraform và Ansible trong việc tự động hóa triển khai và quản lý cơ sở hạ tầng điện toán đám mây AWS một cách hiệu quả. Bạn sẽ học được cách tạo ra những phép biến đổi đặc biệt trong môi trường đám mây.
Khóa học được thiết kế chi tiết, đễ hiểu, rõ ràng, và đơn giản nhất với các bài giảng hướng dẫn bạn từng bước một
sử dụng Terraform Code Blocks và Ansible Playbooks, giúp bạn dễ dàng áp dụng kiến thức vào công việc thực tế.
Mỗi bài học là một bước tiến mới trong tự động hóa việc xây dựng một hạ tầng hệ thống trong đám mây AWS thông qua một dự án.
Và bởi vì chúng ta sẽ xây dựng các Terraform templates và các Ansible playbooks cho dự án này từ đầu đến cuối, do đó bạn sẽ hiểu sâu hơn về Terraform, Ansible và cơ sở hạ tầng đám mây AWS.
Cuối cùng bạn sẽ thấy là bạn sẽ có kiến thức, kỹ năng tốt hơn cũng như tự tin hơn sau tất cả những gì mà bạn đã được học trong khóa học này.