nếu bạn chỉ có muốn chạy tập lệnh, bạn có thể chuyển tập lệnh trực tiếp dưới dạng dữ liệu người dùng, thay vì sử dụng cấu hình đám mây. Miễn là tập lệnh bắt đầu bằng #!
, cloud-init sẽ cố gắng chạy nó trực tiếp, thay vì diễn giải nó dưới dạng cloud-config.
Nếu bạn muốn chạy cả cloud-config và một tập lệnh riêng, trong khi tập lệnh kia được đăng write_files
giải pháp sẽ hoạt động, bạn cũng có thể chuyển kho lưu trữ nhiều phần kịch câm. Cloud-init chứa tập lệnh trợ giúp để thực hiện việc này dễ dàng hơn một chút. Giả sử bạn có dữ liệu người dùng trong một tệp có tên my-user-data
:
#cloud-config
chạy cmd:
- tiếng vang 'kiểm tra từ đám mây-config' > /var/tmp/test_from_cloud_config
Và một kịch bản bạn muốn chạy callecd kiểm tra.sh
:
#!/bin/bash
tiếng vang 'test_from_script' > /var/tmp/test_from_script
Bạn có thể gọi:
cloud-init devel make-mime -a test.sh:x-shellscript -a my-user-data:cloud-config > /tmp/userdata
Bạn có thể lấy tệp nhiều phần kết quả và chuyển nó tới cloud-init dưới dạng dữ liệu người dùng (ví dụ: sử dụng LXD):
lxc khởi chạy ubuntu:focal multi -c user.user-data="$(cat /tmp/userdata)"
Bạn có thể thấy rằng cả cloud-config và script đều đã chạy:
root@multi:~# mèo /var/tmp/test_from_cloud_config
kiểm tra từ đám mây-config
root@multi:~# mèo /var/tmp/test_from_script
test_from_script
Nhìn thấy tài liệu khởi tạo đám mây để tham khảo.