เท่าที่ฉันเห็น cloud-init ทำงานทุกครั้งที่คอนฟิกเปลี่ยน ไม่ใช่แค่ครั้งแรกที่ระบบบูท แต่ทุกครั้งที่คอนฟิกูเรชันที่ให้มาเปลี่ยนแปลง สิ่งนี้ค่อนข้างสมเหตุสมผล เพราะฉันคิดว่าเป็นการยากที่จะกำหนด "ครั้งแรก" (VM ที่โคลนได้รันก่อนที่จะถูกแช่แข็งและใช้เป็นเทมเพลต ดังนั้นมันจึงไม่ใช่ครั้งแรกจริงๆ) อย่างไรก็ตาม ฉันได้ค้นพบเป็นครั้งคราว ค่อนข้างน้อย แต่ก็ยังพบสิ่งนั้นอยู่ cloud-init ทำงานซ้ำบนระบบที่จัดเตรียมไว้แล้วเมื่อรีบูต
อย่างไรก็ตาม บางขั้นตอนดูเหมือนจะทำให้การตั้งค่าเสียหายเมื่อ cloud-init ทำงานบนระบบที่กำหนดค่าไว้อย่างสมบูรณ์ ตัวอย่างเช่น หากเรียกใช้อีกครั้งหลังจากการตั้งค่าเริ่มต้นและ cloud-init ตั้งค่าการกำหนดค่าบางอย่างเป็นค่า เอ็กซ์แต่คุณได้ทำการลบล้างด้วยตนเองในภายหลังเป็น วาย และตอนนี้ cloud-init รันใหม่เพื่อตั้งค่ากลับเป็น เอ็กซ์. หรือให้ระบบสร้างโฮสต์คีย์ SSH ของคุณใหม่
ฉันพบว่ามีประโยชน์มากในการเรียกใช้ด้วยตนเอง:
sudo touch /etc/cloud/cloud-init.disabled
...หลังจากการตั้งค่าเริ่มต้นเพื่อป้องกันไม่ให้ทำงาน cloud-init อีกครั้ง. (ในกรณีที่ cloud-init ใช้สำหรับการกำหนดค่าประเภท "โคลน & ตั้งค่า IPs / ชื่อโฮสต์" เริ่มต้นเท่านั้น)
แต่มีวิธีใดบ้างที่จะทำให้สิ่งนี้เป็นไปโดยอัตโนมัติ? เช่นเดียวกับการเพิ่มพารามิเตอร์บางอย่างให้กับ /etc/cloud/cloud.cfg ที่ปิดตัวเองหลังจากการวิ่งครั้งต่อไป?