ถ้าคุณ เท่านั้น ต้องการเรียกใช้สคริปต์ คุณสามารถส่งสคริปต์โดยตรงเป็นข้อมูลผู้ใช้ แทนที่จะใช้ cloud-config ตราบใดที่สคริปต์เริ่มต้นด้วย #!
, cloud-init จะพยายามเรียกใช้โดยตรง แทนที่จะตีความว่าเป็น cloud-config
หากคุณต้องการเรียกใช้ทั้ง cloud-config และสคริปต์แยกต่างหาก ในขณะที่อีกสคริปต์หนึ่งถูกโพสต์ Write_files
โซลูชันจะใช้งานได้ คุณยังสามารถส่งไฟล์เก็บถาวรหลายส่วนแบบ mime Cloud-init มีสคริปต์ตัวช่วยเพื่อทำให้ง่ายขึ้นเล็กน้อย สมมติว่าคุณมีข้อมูลผู้ใช้ในไฟล์ชื่อ ข้อมูลผู้ใช้ของฉัน
:
#cloud-config
เรียกใช้ cmd:
- echo 'ทดสอบจาก cloud-config' > /var/tmp/test_from_cloud_config
และสคริปต์ที่คุณต้องการเรียกใช้ callecd ทดสอบ.sh
:
#!/bin/bash
echo 'test_from_script' > /var/tmp/test_from_script
คุณสามารถโทร:
cloud-init devel make-mime -a test.sh:x-shellscript -a my-user-data:cloud-config > /tmp/userdata
คุณสามารถใช้ไฟล์หลายส่วนที่เป็นผลลัพธ์และส่งต่อไปยัง cloud-init เป็น userdata (เช่น ใช้ LXD):
lxc เปิดตัว ubuntu:focal multi -c user.user-data="$(cat /tmp/userdata)"
คุณจะเห็นว่าทั้ง Cloud-config และสคริปต์ทำงานแล้ว:
root@multi:~# cat /var/tmp/test_from_cloud_config
ทดสอบจาก cloud-config
root@multi:~# cat /var/tmp/test_from_script
test_from_script
ดู เอกสาร cloud-init สำหรับการอ้างอิง