Score:2

ฉันจะส่งการกำหนดค่า cloud-init เมื่อสร้างคอนเทนเนอร์ LXD ได้อย่างไร

ธง ck

ฉันได้อ่านเอกสารและบล็อกของ LXD และคำตอบของ stackexchange ที่บอกว่า LXD ควรมีไวยากรณ์เริ่มต้นบางประเภทที่อนุญาตให้คุณส่งข้อมูลการกำหนดค่าคลาวด์ไปยังคอนเทนเนอร์ของคุณเมื่อสร้างขึ้น แต่ไม่มีตัวอย่างมากมาย ได้ทำงานให้ฉันฉันได้ลองทำตามตัวอย่างการตั้งค่าโปรไฟล์ ตัวอย่างที่ส่งผ่านข้อมูลในการใช้งาน --การกำหนดค่าตัวอย่างที่ส่งข้อมูล yaml โดยตรง และตัวอย่างที่ตั้งค่าข้อมูลหลัง init แต่ก่อนเริ่มต้น ไม่มีอะไรทำงาน ฉันกำลังวางสิ่งที่ฉันมีอยู่... ใครก็ได้ช่วยบอกฉันทีว่าฉันทำอะไรผิดและจะแก้ไขได้อย่างไร

ตัวอย่างพื้นฐานที่สุดที่ฉันนึกได้:

lxc ลบ -f x

แมว << EOF >config.yml
#cloud-config
เอาต์พุต: {ทั้งหมด: '| ที -a /var/log/my-cloud-init-output.log'}
package_update: จริง
package_upgrade: จริง
package_reboot_if_required: จริง
แพ็คเกจ:
  - ต้นไม้
เรียกใช้คำสั่ง:
  - สัมผัส /run/cloud-config-did-run
อฟ

lxc เปิดตัว ubuntu: x --config=user.user-data="$(cat config.yml)"
นอน5
lxc exec x -- bash -c "ls /รัน"
lxc exec x -- bash -c "ต้นไม้ / etc"

สิ่งนี้ควรส่งออกไปที่ /var/log/my-cloud-init-output.logติดตั้ง tree และสร้างไฟล์ว่างใน /run เอาต์พุตไปยัง /var/log/my-cloud-init-output.log ใช้งานได้ แต่ไม่มีอะไรทำ บันทึกไม่ได้แสดงอะไรพิเศษ

ck flag
ใช่ ฉันได้ลองใช้โปรไฟล์แล้ว แต่ก็ไม่ได้ผลเช่นกัน (คำสั่งไม่เคยทำงาน) ฉันแค่มองหาบางสิ่ง อะไรก็ได้ที่ทำงานนอกกรอบ เพื่อที่ฉันจะได้มีพื้นฐานในการทำงาน
ck flag
บล็อกนั้นเป็นบล็อกที่ฉันติดตามเมื่อพยายามใช้โปรไฟล์
ck flag
แท้จริงแล้วสิ่งที่ฉันต้องการคือเปิดคอนเทนเนอร์อูบุนตูและติดตั้งแพ็คเกจพิเศษบางอย่าง ฉันไม่ต้องการการเปลี่ยนแปลงแบบไดนามิก (ไม่แน่ใจด้วยซ้ำว่าคืออะไร) ฉันแค่ต้องการให้ผลลัพธ์สุดท้ายเป็นคอนเทนเนอร์อูบุนตูมาตรฐาน + ติดตั้งแพ็คเกจบางส่วน (และฉันไม่ต้องเข้าสู่ระบบด้วยตนเองและติดตั้งทุกอย่างด้วยตัวเอง)
Score:2
ธง th

ดูเหมือนว่าคุณต้องรออีกต่อไป เนื่องจากคุณมีทั้งสองอย่าง package_update และ package_upgrade ระบุว่าเป็นจริง คุณกำลังเรียกใช้เป็นหลัก ฉลาดรับการปรับปรุง; apt-รับการอัพเกรด (ซึ่งอาจใช้เวลานานกว่า 5 วินาที) ก่อนที่ต้นไม้จะสามารถติดตั้งได้หรือเรียกใช้ runcmd

คำสั่งที่แน่นอนของคุณใช้ได้สำหรับฉันถ้าฉันแทนที่ นอน5 กับ

lxc exec x -- bash -c "สถานะ cloud-init -- รอ"
นอนหลับ 2 # เนื่องจาก `package_reboot_if_required: true`
user535733 avatar
cn flag
+5 ถ้าฉันทำได้ ฉันมี * ปัญหาเดียวกันทุกประการ * (ไม่รอให้ cloud-init เสร็จสิ้น) เมื่อสองสามเดือนก่อน แต่ไม่สามารถจดจำได้ในคำถาม ความรุ่งโรจน์สำหรับงานนักสืบ!
ck flag
อืม น่าสนใจ... เมื่อฉันแทนที่คำสั่งเหล่านั้น ฉันจะได้รับหน้าจอที่เต็มไปด้วยจุดขณะที่รอตลอดไป (ฉันยอมแพ้หลังจากผ่านไป 15 นาที) แม้จะลบทุกอย่าง แต่คำสั่งสัมผัสไม่ทำงาน และสิ่งนี้ล้มเหลวในสองระบบแยกกัน (NixOS ที่ใช้ LXD 2.40 และ Ubuntu ที่ใช้ 2.41)
th flag
คุณควรจะสามารถ `lxc shell x` ลงในคอนเทนเนอร์และดูว่าเกิดอะไรขึ้น `systemd-analyze critical-chain` ควรบ่นหากมีสิ่งใดขัดขวางการบูต ถ้าไม่ใช่ `/var/log/cloud-init.log` ควรระบุความล้มเหลวเฉพาะของ cloud-init

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา