Dịch vụ Metadata của Akamai cung cấp cho bạn khả năng tự động hóa cấu hình hệ thống khi triển khai Compute Instance. Điều này chủ yếu được thực hiện bằng cách thêm dữ liệu người dùng dưới dạng các tập lệnh cloud-config. Các tập lệnh này được xử lý bởi phần mềm cloud-init chạy trong hệ thống của phiên bản mới triển khai. Để tìm hiểu thêm về cách thêm dữ liệu người dùng và định dạng dữ liệu người dùng, hãy xem Thêm dữ liệu người dùng khi triển khai Compute Instance .

Cloud-init đã hỗ trợ dịch vụ Metadata của Akamai kể từ phiên bản 23.3.1 (phát hành vào tháng 8 năm 2023). Mặc dù phiên bản cloud-init này đã được đưa vào một số hình ảnh phân phối do Akamai cung cấp, nhưng hầu hết các bản phân phối đều không cài đặt cloud-init theo mặc định. Hơn nữa, phiên bản cloud-init được cung cấp trong kho lưu trữ gói của hầu hết các bản phân phối đều cũ hơn và không tương thích với dịch vụ Metadata.

Hướng dẫn này hướng dẫn bạn cách cài đặt phiên bản mới của cloud-init trên các bản phân phối hiện không được dịch vụ Metadata hỗ trợ chính thức. Bằng cách đó, bạn có thể tạo hình ảnh phân phối Metadata-ready để có thể bắt đầu sử dụng lại các tập lệnh cloud-init hiện có của mình trên nền tảng Akamai.

Triển khai một phiên bản tính toán

Bước đầu tiên là tạo một Compute Instance mới chạy bản phân phối bạn chọn. Nếu bản phân phối đã chọn đã được đánh dấu là tương thích với cloud-init, bạn không cần phải làm theo các bước trong hướng dẫn này. Nếu bản phân phối không tương thích với cloud-init, hãy tiếp tục với hướng dẫn này để tạo một hình ảnh tương thích với cloud-init cho bản phân phối này. Để biết chi tiết về khả năng tương thích của Metadata/cloud-init, hãy xem Tổng quan về Dịch vụ Metadata > Khả dụng .

Phiên bản này tạo thành cơ sở cho mẫu triển khai cloud-init. Xem hướng dẫn Bắt đầu với Linode và Tạo phiên bản Compute của chúng tôi . Các hướng dẫn trong hướng dẫn này bao gồm các hệ thống dựa trên Debian, Ubuntu và RHEL (CentOS, Fedora, AlmaLinux, Rocky Linux, v.v.). Các bước chưa được xác minh với các bản phân phối khác nhưng có thể thích ứng với một số sửa đổi.

Cài đặt Cloud-Init

Dịch vụ Metadata của Akamai yêu cầu một phiên bản có cloud-init phiên bản 23.3.1 trở lên. Mặc dù cloud-init có thể được cài đặt thông qua trình quản lý gói trên hầu hết các bản phân phối, nhưng thông thường các phiên bản đó cũ hơn và không hỗ trợ dịch vụ Metadata của Akamai. Các bước dưới đây sẽ chỉ cho bạn cách cài đặt cloud-init từ nguồn.

1.Cài đặt Git và Pip cho Python 3.

Debian và ubuntu:

apt update
apt install git python3-pip

CentOS, Fedora, AlmaLinux, Rocky Linux, v.v.

dnf install git python3-pip

2.Sao chép kho lưu trữ cloud-init Git và thay đổi vào thư mục kho lưu trữ. Bước này cũng thay đổi vào thư /tmp/mục trước, vì kho lưu trữ chỉ cần được lưu trữ tạm thời.

cd /tmp/
git clone https://github.com/cloud-init/cloud-init.git
cd cloud-init/

3.Cài đặt các điều kiện tiên quyết của dự án.

pip3 install -r requirements.txt

Với một số bản phân phối mới hơn, bạn có thể cần chạy lệnh trên với tùy --break-system-packageschọn. Điều này ghi đè lên thông số kỹ thuật cố gắng ngăn ngừa xung đột giữa trình quản lý gói hệ điều hành và Pip.

pip3 install -r requirements.txt --break-system-packages

Ghi chú: Đặc tả PEP 668 cố gắng ngăn ngừa xung đột giữa các gói Python được cài đặt thông qua trình quản lý gói OS và PIP. Đặc tả này khuyến nghị cài đặt các gói với Pip trong môi trường ảo Python, như Virtualenv .

Cách tiếp cận đó không hiệu quả với trình cài đặt cloud-init, do đó các bước ở đây khuyến nghị ghi đè thông số kỹ thuật. Trong các thử nghiệm của chúng tôi, điều này không gây ra bất kỳ sự cố nào, nhưng hãy lưu ý rằng việc sử dụng tùy chọn này có thể ảnh hưởng đến hành vi của một số gói Python.

4.Xây dựng và cài đặt cloud-init từ dự án.

python3 setup.py build
python3 setup.py install --init-system systemd

Cấu hình Cloud-Init

Một vài bước cấu hình là cần thiết để chuẩn bị cài đặt cloud-init chạy đúng trên phiên bản. Các bước dưới đây khởi động cloud-init và thêm nguồn dữ liệu Akamai cần thiết để triển khai với dịch vụ Metadata.

1.Khởi tạo cloud-init trên hệ thống. Làm như vậy cũng sẽ đưa ra phiên bản; đảm bảo phiên bản ít nhất là 23.3.1để đảm bảo khả năng tương thích với dịch vụ Akamai Metadata.

cloud-init init --local
Cloud-init v. 23.3.3 running 'init-local' at Mon, 27 Nov 2023 22:31:40 +0000. Up 105.67 seconds.

2.Xác minh trạng thái của dịch vụ cloud-init.

cloud-init status
status: running

3.Thêm Akamaivào datasource_listmột trong các tệp cấu hình cloud-init. Xác định vị trí tệp cấu hình phù hợp như sau.

  • Trên nhiều Akamai Compute Instances mới, tệp cấu hình cloud-init được bao gồm tại /etc/cloud/cloud.cfg.d/99-linode.cfg. Cấu hình này được ưu tiên và nếu bạn có, bạn nên thêm nguồn dữ liệu vào đó.
  • Nếu bạn không có tệp 99-linode.cfgđược đề cập ở trên, bạn nên thêm nguồn dữ liệu vào tệp cấu hình cloud-init mặc định: /etc/cloud/cloud.cfg.

Trong cả hai trường hợp, hãy tìm datasource_listvà thêm Akamailàm mục nhập đầu tiên, như hiển thị bên dưới. Nếu tùy datasource_listchọn chưa có trong tệp cấu hình, hãy thêm nó với Akamaitư cách là mục duy nhất trong mảng.

...

datasource_list: [ Akamai, NoCloud, ConfigDrive, None ]

...

4.Tắt phiên bản này, có thể từ dòng lệnh bằng lệnh bên dưới hoặc từ trong Cloud Manager.

shutdown

Tạo một hình ảnh tùy chỉnh

Tạo một hình ảnh từ thiết lập phiên bản ở trên cho phép bạn triển khai các phiên bản mới tận dụng dịch vụ Metadata và các tập lệnh triển khai cloud-init tùy chỉnh. Để biết thêm thông tin về cách tạo hình ảnh của Akamai Compute Instance, bạn có thể tham khảo hướng dẫn Capture an Image của chúng tôi .

Sau đây là tóm tắt các bước bạn có thể sử dụng để tạo ảnh cơ sở từ phiên bản mà bạn đã cài đặt cloud-init.

  1. Điều hướng đến phần Hình ảnh của Trình quản lý đám mây.
  2. Chọn Tạo hình ảnh .
  3. Trên biểu mẫu kết quả:
    • Chọn Compute Instance mà bạn đã cài đặt cloud-init
    • Chọn ổ đĩa liên quan
    • Chỉ ra rằng hình ảnh tương thích với cloud-init
    • Đặt nhãn cho hình ảnh
    • Chọn tùy chọn Tạo hình ảnh
    Tạo một hình ảnh từ một phiên bản cơ sở với cloud-init
  4. Đợi quá trình tạo hoàn tất. Bạn có thể xem tiến trình từ phần Hình ảnh của Cloud Manager.

Triển khai một Instance với User-Data

Với hình ảnh cloud-init cơ bản đã sẵn sàng, bạn có thể triển khai phiên bản mới của dịch vụ Metadata và dữ liệu người dùng cloud-init bất cứ khi nào bạn cần. Tham khảo hướng dẫn của chúng tôi về cách Triển khai Hình ảnh tới Phiên bản Compute mới để triển khai hình ảnh. Tham khảo hướng dẫn của chúng tôi về cách Sử dụng Cloud-Init để Tự động Cấu hình và Bảo mật Máy chủ của Bạn để biết thêm về cách thêm dữ liệu người dùng vào phiên bản mới.

Các bước sau đây hướng dẫn bạn triển khai mới đơn giản từ hình ảnh cloud-init cơ sở. Điều này bao gồm một tập lệnh dữ liệu người dùng cloud-init đơn giản được mô phỏng theo hướng dẫn Thiết lập và bảo mật phiên bản tính toán của chúng tôi .

Ghi chú: Các Compute Instance mới triển khai không có quyền truy cập mạng trong quá trình khởi động. Điều này ngăn không cho cloud-init chạy đúng cách. Một số bước cuối cùng bên dưới giải quyết vấn đề này, khởi động lại quy trình cloud-init sau lần khởi động đầu tiên.

1.Điều hướng đến phần Tạo Linode của Trình quản lý đám mây và chọn tab Hình ảnh .

2.Trong menu thả xuống Hình ảnh, hãy chọn hình ảnh bạn vừa tạo.Ảnh chụp màn hình triển khai một phiên bản từ một hình ảnh tùy chỉnh

3.Chọn một khu vực mà dịch vụ Siêu dữ liệu khả dụng. Những khu vực này được liệt kê trong tài liệu tham khảo Siêu dữ liệu .

4.Chọn gói phiên bản mong muốn, nhập nhãn cho phiên bản mới và tạo thông tin xác thực cho người dùng gốc.

5.Mở rộng phần Thêm dữ liệu người dùng và nhập dữ liệu người dùng mong muốn của bạn. Sau đây là ví dụ cơ bản hữu ích cho nhiều trường hợp mới.

#cloud-config

# Configure a limited user
users:
  - default
  - name: example-user
    groups:
      - sudo
    sudo:
      - ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    ssh_authorized_keys:
      - "SSH_PUBLIC_KEY"

# Perform system updates
package_update: true
package_upgrade: true

# Configure server details
timezone: 'US/Central'
hostname: examplehost

# Harden SSH access
runcmd:
  - sed -i '/PermitRootLogin/d' /etc/ssh/sshd_config
  - echo "PermitRootLogin no" >> /etc/ssh/sshd_config
  - systemctl restart sshd

6.Bắt đầu triển khai bằng cách chọn Create Linode và đợi phiên bản mới được triển khai. Bạn có thể theo dõi tiến trình của phiên bản này từ phần Linodes của Cloud Manager.

7.Truy cập phiên bản với tư cách là người dùng root thông qua bảng điều khiển Lish. Tìm hiểu cách thực hiện trong hướng dẫn Truy cập bảng điều khiển hệ thống của bạn bằng Lish (Linode Shell) .

8.Đặt lại cloud-init. Điều này đảm bảo rằng, trong lần khởi động tiếp theo, cloud-init chạy như thể khởi động hệ thống ban đầu.

cloud-init clean && cloud-init clean --logs

9.Khởi động lại phiên bản.

reboot

Sau khi phiên bản khởi động lại, bạn có thể xác minh việc thực thi cloud-init bằng cách đăng nhập với tư cách là người dùng đã tạo — example-usertrong ví dụ trên. Bạn cũng có thể sử dụng các bước trong hướng dẫn Sử dụng Cloud-Init để cài đặt và cập nhật phần mềm trên máy chủ mới của chúng tôi để xác minh các bản cập nhật gói hệ thống.

Thông tin thêm

Bạn có thể muốn tham khảo các nguồn sau để biết thêm thông tin về chủ đề này. Mặc dù chúng tôi cung cấp với hy vọng rằng chúng sẽ hữu ích, nhưng xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc tính kịp thời của các tài liệu được lưu trữ bên ngoài.

Nguồn: https://www.linode.com/docs/guides/using-metadata-cloud-init-on-any-distribution/?tabs=centos-fedora-almalinux-rocky-linux-etc