Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Một case study dùng Terraform


    Một case study dùng Terraform.


    Trong case study này, Terraform được dùng để đẩy cấu hình xuống hạ tầng. Hạ tầng lúc này được quản lý bởi API server là Intersigh, là nền tảng quản lý hạ tầng hiện đại (cloud based), cho phép giám sát, cấu hình và tự động hóa hệ thống server và các thiết bị mạng liên quan. Nó hỗ trợ quản lý từ xa thông qua giao diện web hoặc API, đồng thời tích hợp với các công cụ DevOps như Terraform và Ansible.

    Nói tóm lại, hai tool deployment của CICD phổ biến nhất trong network automation là Ansible và Terraform.

    [Hướng dẫn Terraform cho Intersight – Tự động hóa hạ tầng như một Pro!]


    Case study này khảo sát qui trình tích hợp giũa Terraform – công cụ mạnh mẽ định nghĩa hạ tầng dưới dạng mã (Infrastructure as Code) và một API server ví dụ là Intersight.

    Khi nào dùng Terraform?


    Terraform cực kỳ phù hợp trong các kịch bản greenfield – nơi bạn triển khai mới hoàn toàn từ đầu. Nó định nghĩa “trạng thái mong muốn” của hệ thống và đảm bảo mọi thứ nhất quán theo cấu hình.
    Nhưng nếu bạn đang quản lý một hệ thống đã có sẵn (brownfield), hãy lưu ý: Terraform không nhận diện tài nguyên cũ nếu chưa nhập vào state. Trong khi đó, Ansible hay Python lại có lợi thế vì chỉ cần khai báo thay đổi, không cần quản lý toàn bộ tài nguyên trước đó.


    Tổng quan các bước thiết lập:


    1. Cài Terraform


    Đảm bảo máy bạn đã cài đặt Terraform (hoặc đang dùng Terraform Cloud). Xong bước này rồi? Tiếp tục!

    2. Cài đặt PLUG IN "Provider intersight"


    Bước này là để khai báo với Terraform rằng bạn sẽ làm việc với nền tảng Cisco Intersight, và Terraform cần tải đúng plugin (provider) để có thể giao tiếp được với nó.
    • Truy cập Terraform Registry – CiscoDevNet/Intersight
    • Nhấn USE PROVIDER để lấy đoạn cấu hình:
    terraform {
    required_providers {
    intersight = {
    source = "CiscoDevNet/intersight"
    version = "1.0.61"
    }
    }
    }


    Nếu bạn không thực hiện bước này, Terraform sẽ không biết cách giao tiếp với Cisco Intersight, và các câu lệnh như terraform apply sẽ báo lỗi do thiếu provider.
    Có thể hiểu đơn giản: Provider = "bộ plugin" để Terraform hiểu ngôn ngữ & cách nói chuyện với một nền tảng cụ thể như Intersight, AWS, Azure...


    3. Tạo API Key trong Cisco Intersight
    • Vào System > API Keys
    • Tạo mới ➝ Lưu lại API Key ID & Secret Key (secret chỉ xem được 1 lần!)
    4. Cấu hình provider


    Ví dụ trong file main.tf:

    provider "intersight" {
    apikey = "YOUR_API_KEY"
    secretkey = "C:\\terraform\\SecretKey.txt"
    endpoint = "https://intersight.com
    "
    }
    Tips an toàn: Không hard-code khóa vào file .tf. Dùng biến môi trường hoặc terraform.tfvars để bảo mật tốt hơn. Vụ API Key này là bảo mật nha. Nhiều bài giải thích về vấn đề này.


    Khởi tạo với terraform init


    $ terraform init

    Terraform sẽ tải provider, tạo file khóa .terraform.lock.hcl để đảm bảo bạn luôn dùng đúng phiên bản provider ở mọi môi trường làm việc.

    Kiểm thử kết nối: Truy vấn thông số MOID của tổ chức


    Đây là bài test đơn giản nhưng cực kỳ quan trọng để xác nhận cấu hình của bạn đã OK:

    Data "intersight_organization_organization" "myorg" {
    name = "DC01"
    }

    output "myorg-moid" {
    value = data.intersight_organization_organization.myorg.re sults[0].moid
    }


    Sau đó chạy:

    $ terraform apply

    Kết quả:

    + myorg-moid = "64c8e662697265300116c64d"

    Bạn đã có thể bắt đầu định nghĩa chính sách, server profile, policy groups... chỉ bằng vài dòng mã!

    TÓM TẮT CASE STUDY
    • Terraform rất mạnh để dựng hạ tầng từ con số 0 (greenfield)
    • Xác thực bằng API Key đơn giản nhưng đừng quên bảo mật
    • terraform init luôn là bước đầu tiên!
    • Kiểm tra kết nối bằng cách lấy MOID là bước rất tốt trước khi triển khai thật
    • Dùng terraform planterraform apply để kiểm soát mọi thay đổi
    #Terraform #CiscoIntersight #IaC #DevOps #NetDevOps #VnProCommunity #HạTầngTựĐộng #AutomationTraining

    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X