Cách Tạo Tệp Cấu Hình Ignition Cho VPS: Tối Ưu Hóa Cloud Server

Cách Tạo Tệp Cấu Hình Ignition Cho VPS: Tối Ưu Hóa Cloud Server

Hướng dẫn này trình bày cách tạo một tệp cấu hình Ignition để triển khai một instance máy chủ đám mây Fedora CoreOS (FCOS) tại DataOnline. Các tệp Ignition là các chỉ dẫn provisioning được định dạng theo JSON, dùng để cấu hình lưu trữ, hệ thống tập tin, đơn vị systemd, mạng, người dùng và các thành phần khác trong lần khởi động đầu tiên của hệ thống. Khi triển khai một máy chủ FCOS, bạn phải cung cấp tệp Ignition trong customer portal của DataOnline. Cách được khuyến nghị để tạo tệp Ignition là biên dịch (transpile) một tệp cấu hình Fedora CoreOS Configuration (FCC) bằng công cụ Fedora CoreOS Config Transpiler, fcct.

Khám phá cách tạo tệp cấu hình Ignition để tối ưu hóa cloud server của bạn! Nếu bạn đang tìm kiếm giải pháp VPS hosting mạnh mẽ, hãy tham khảo các gói VPS tốc độ cao tại DataOnline để đảm bảo hiệu suất vượt trội và quản lý dễ dàng cho dự án của bạn.

1. Cài đặt fcct

Tiện ích fcct có sẵn cho Linux, macOS và Windows. Người dùng Windows có thể cần cài đặt Gpg4win để xác thực chữ ký của tệp.

  1. Tải về các khóa ký của Fedora:

    $ wget https://getfedora.org/static/fedora.gpg
  2. Nhập các khóa vào gpg:

    $ gpg --import fedora.gpg
  3. Tải về phiên bản fcct mới nhất phù hợp với kiến trúc máy của bạn. Ví dụ dưới đây sử dụng fcct-x86_64-unknown-linux-gnu.

  4. Tải về tệp chữ ký rời (detached signature) tương ứng. Ví dụ sử dụng fcct-x86_64-unknown-linux-gnu.asc.

  5. Xác thực tệp tải về:

    $ gpg --verify fcct-x86_64-unknown-linux-gnu.asc fcct-x86_64-unknown-linux-gnu
  6. Đặt quyền thực thi cho tệp:

    $ chmod +x fcct-x86_64-unknown-linux-gnu

2. Tạo tệp FCC

Các tệp cấu hình Fedora CoreOS (FCC) được viết theo định dạng YAML. Xem thêm phần chỉ định ngôn ngữ YAML FCC để biết chi tiết và với người dùng nâng cao, có thể tham khảo tóm tắt đặc tả.

Trên hệ thống cục bộ, tạo một tệp FCC ví dụ:

$ nano example.fcc

Ví dụ tệp FCC tối thiểu

Đây là một tệp FCC tối thiểu và khả dụng. Khoá SSH công khai được rút gọn để dễ hiểu.

variant: fcos
version: 1.0.0
passwd:
  users:
    - name: core
      ssh_authorized_keys:
        - "ssh-rsa AAAAB3Nza...QP0MTkX0= core@example.com"
      groups: [ sudo, docker ]

Tệp này sẽ cấu hình một instance FCOS với một khoá SSH cho người dùng core và thêm người dùng core vào các nhóm sudo và docker. Với cấu hình tối thiểu này, người dùng core có thể đăng nhập bằng khoá riêng (private key) nhưng không có mật khẩu.

Thêm mật khẩu cho người dùng core

Nếu cần mật khẩu cho người dùng core, thêm một trường password_hash. Mật khẩu này được dùng cho xác thực cục bộ qua console, tuy nhiên FCOS sẽ không cho phép đăng nhập bằng mật khẩu qua SSH. Sử dụng đoạn YAML như sau (mã băm mật khẩu được rút gọn để dễ đọc):

users:
  - name: core
    password_hash: "$5$QQx.D1549w$INeU4...OyuLyUbdi1AyA"

Tệp FCC hoàn chỉnh

Dưới đây là ví dụ tệp FCC hoàn chỉnh:

variant: fcos
version: 1.0.0
passwd:
  users:
    - name: core
      password_hash: "$5$QQx.D1549w$INeU4...OyuLyUbdi1AyA"
      ssh_authorized_keys:
        - "ssh-rsa AAAAB3Nza...QP0MTkX0= core@example.com"
      groups: [ sudo, docker ]

Đặt hostname

Bạn có thể đặt hostname thông qua Ignition theo hai cách:

Phương án 1: Ghi trực tiếp tệp /etc/hostname

Thêm một đoạn YAML vào tệp .fcc như ví dụ dưới đây. Thay example-hostname bằng hostname của máy chủ bạn.

storage:
  files:
    - path: /etc/hostname
      overwrite: true
      contents:
        inline: example-hostname

Phương án 2: Tạo một dịch vụ systemd oneshot

Thêm một đoạn YAML vào tệp .fcc như ví dụ dưới đây. Thay example-hostname bằng hostname của máy chủ bạn.

systemd:
  units:
    - name: set-hostname.service
      enabled: true
      contents: |
        [Unit]
        Description=Set the hostname

        [Service]
        Type=oneshot
        ExecStart=/usr/bin/hostnamectl set-hostname example-hostname

        [Install]
        WantedBy=multi-user.target

Ví dụ FCC với hostname

Dưới đây là một ví dụ FCC có cấu hình hostname theo Phương án 1:

variant: fcos
version: 1.0.0
passwd:
  users:
    - name: core
      password_hash: "$5$QQx.D1549w$INeU4...OyuLyUbdi1AyA"
      ssh_authorized_keys:
        - "ssh-rsa AAAAB3Nza...QP0MTkX0= core@example.com"
      groups: [ sudo, docker ]
storage:
  files:
    - path: /etc/hostname
      overwrite: true
      contents:
        inline: example-hostname

Sử dụng VPC

Ignition cũng có thể cấu hình máy chủ cho một Virtual Private Cloud (VPC). Trước khi thực hiện, hãy đảm bảo bạn đã hiểu cách sử dụng VPC của DataOnline.

Để cấu hình VPC, thêm một đoạn YAML ghi thông tin mạng của bạn. Thay đổi địa chỉ IP ví dụ bằng địa chỉ của bạn.

storage:
  files:
    - path: /etc/NetworkManager/system-connections/ens7.nmconnection
      mode: 0600
      overwrite: true
      contents:
        inline: |
          [connection]
          type=ethernet
          interface-name=ens7

          [ipv4]
          method=manual
          addresses=10.10.10.10/20

Ví dụ FCC hoàn chỉnh

Dưới đây là một tệp FCC hoàn chỉnh bao gồm tất cả các phần đã mô tả:

variant: fcos
version: 1.0.0
passwd:
  users:
    - name: core
      password_hash: "$5$QQx.D1549w$INeU4...OyuLyUbdi1AyA"
      ssh_authorized_keys:
        - "ssh-rsa AAAAB3Nza...QP0MTkX0= core@example.com"
      groups: [ sudo, docker ]
storage:
  files:
    - path: /etc/hostname
      mode: 0644
      overwrite: true
      contents:
        inline: example-hostname
    - path: /etc/NetworkManager/system-connections/ens7.nmconnection
      mode: 0600
      overwrite: true
      contents:
        inline: |
          [connection]
          type=ethernet
          interface-name=ens7
      
          [ipv4]
          method=manual
          addresses=10.10.10.10/20

Máy chủ đám mây được triển khai sẽ có hai adapter mạng:

  • ens3 trên mạng công cộng, được cấu hình qua DHCP.

  • ens7 trên mạng VPC, với địa chỉ IP tĩnh được thiết lập bởi Ignition.

Ví dụ tệp tham khảo

Tệp FCC ví dụ đầy đủ có thể được tải về cùng với tệp Ignition đã được biên dịch. Ví dụ này sẽ:

  • Cài đặt một khoá SSH công khai ví dụ cho người dùng core. Thay khoá ví dụ bằng khoá của bạn. Xem tài liệu của DataOnline để tạo cặp khoá Public/Private.

  • Đặt mật khẩu cho người dùng core là: example-password

  • Đặt hostname của instance là: example-hostname

  • Tạo một adapter mạng VPC với địa chỉ IP 10.10.10.10. Bạn phải kích hoạt tính năng VPC trên instance để adapter có thể hoạt động.

3. Biên dịch FCC thành Ignition

Tệp FCC phải được biên dịch sang định dạng Ignition trước khi sử dụng.

$ ./fcct-x86_64-unknown-linux-gnu -o example.ign example.fcc

4. Triển khai Fedora CoreOS với Ignition

  1. Triển khai một máy chủ mới qua customer portal của DataOnline.

  2. Chọn Fedora CoreOS làm hệ điều hành từ danh sách.

  3. Dán nội dung của tệp example.ign vào trường Ignition.

    cach tao tep cau hinh ignition 2

  4. Chọn các tùy chọn triển khai của bạn và nhấn Deploy Now.

Sau khi nắm cách tạo tệp Ignition, việc chọn VPS phù hợp là bước tiếp theo. Khám phá ngay DataOnline để mua VPS giá rẻ, chất lượng cao, giúp bạn triển khai dự án hiệu quả mà vẫn tiết kiệm chi phí tối đa.

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

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 *