ฉันมีคำถามที่เฉพาะเจาะจงมากกว่า OP แต่ใช้เวลาสักครู่กว่าจะคิดออกว่าทำอะไรผิด ฉันคิดว่าฉันจะโพสต์ที่นี่เพื่อช่วยให้คนอื่นได้รับนิ่งงันในทำนองเดียวกัน
ฉันต้องการการตั้งค่าเครือข่ายแบบคงที่สำหรับคอนเทนเนอร์ LXC / LXD Ubuntu 16.04 ที่โฮสต์บน Ubuntu 16.04 ฉันเริ่มต้นด้วยการลองสิ่งที่Stéphane เขียนแต่มันไม่ทำงาน ทั้งหมดที่ฉันได้รับคือ DHCP ที่พยายามใช้งานเริ่มต้นพร้อมกับลิงค์ IPv6 ในเครื่องเนื่องจากไม่มีการให้บริการ DHCP ในการกำหนดค่าของฉัน
YAML เริ่มต้นของฉันดู (บางอย่าง) ดังต่อไปนี้ (นำมาจากเอกสารdoc-cloud )
network:
version: 1
config:
- type: physical
name: eth0
subnets:
- type: static
address: 192.168.23.14/27
gateway: 192.168.23.1
dns_nameservers:
- 192.168.23.2
- 8.8.8.8
dns_search:
- exemplary.maas
และฉันกำลังโหลดมันลงไปuser.user-data
ตามที่อธิบายข้างต้น
lxc config set CONTAINER user.user-data - < CONTAINER.cloud-init-config.yml
จนกระทั่งฉันพบเอกสารของStéphaneในแหล่งLXC / LXDที่ฉันรู้ว่าฉันต้องการโหลดค่าuser.network-config
นั้น
ดังนั้น YAML สุดท้ายของฉันก็ดู (อะไร) เช่นนี้
version: 1
config:
- type: physical
name: eth0
subnets:
- type: static
address: 192.168.23.14/27
gateway: 192.168.23.1
dns_nameservers:
- 192.168.23.2
- 8.8.8.8
dns_search:
- exemplary.maas
จากนั้นฉันก็ใส่มันเข้าไปuser.network-config
แทน
lxc config set CONTAINER user.network-config - < CONTAINER.network-config.yaml
ดูเหมือนว่าฉันจะต้องเก็บสองไฟล์ที่แตกต่างกันต่อคอนเทนเนอร์หนึ่งไฟล์สำหรับการตั้งค่าเครือข่ายเพื่อโหลดไปยังuser.network-config
; และอีกวิธีหนึ่งสำหรับการกำหนดค่าอื่น ๆ ที่จะโหลดลงในuser.user-data
เว้นแต่ว่าฉันจะหาวิธีใช้ไฟล์เดียวสำหรับทุกสิ่ง
ปัญหาอื่นที่ฉันพบซึ่งไม่ชัดเจนสำหรับฉันเลยคือการพยายามกำหนดค่าส่วนประกอบที่ไม่ใช่เครือข่ายโดยอัตโนมัติ
lxc config set CONTAINER user.user-data - < CONTAINER.user-data.yaml
YAML ต่อไปนี้ใช้กับคำสั่งด้านบน (แม้จะดูถูกต้องโดยใช้lxc config show CONTAINER
) ก็ไม่ได้สร้างสิ่งใดในตู้คอนเทนเนอร์ของฉัน
write_files:
- content: |
# My new /etc/foo.bar file
Foo
Bar
path: /etc/foo.bar
เบาะแสฝังอยู่ในรูปแบบการป้อนข้อมูลผู้ใช้รายการ 5: ข้อมูลการกำหนดค่าคลาวด์อ่าน:
เริ่มต้นด้วย"#cloud-config"
หรือ"Content-Type: text/cloud-config"
เนื้อหานี้เป็นข้อมูล "cloud-config" ดูตัวอย่างสำหรับตัวอย่างความคิดเห็นของรูปแบบการกำหนดค่าที่รองรับ
ฉันไม่เชื่อว่าเอกสารนี้มีความชัดเจนมาก ฉันไม่สามารถทำงานอะไรได้โดยใช้แบบฟอร์ม "ประเภทเนื้อหา: ข้อความ / คลาวด์" แต่ฉันพบว่าคุณใส่#cloud-config
บรรทัดแรก YAML จะถูกแยกวิเคราะห์ ฉันเดาได้แค่บางสิ่งที่ไม่ถูกต้องไม่ว่าจะเป็นความเข้าใจของฉันหรือการเขียนโปรแกรมของใครบางคน สำหรับฉันแล้วมันไม่มีเหตุผลที่ YAML ที่คุณโหลดไว้อย่างชัดเจนเนื่องจากค่าของคีย์user.user-data
ควรใช้เป็นอย่างอื่นนอกเหนือจากข้อมูลการกำหนดค่าระบบคลาวด์ ทำไมไม่มีใครทำอย่างนั้นถ้ามันไม่ได้หมายถึงการกำหนดค่าระบบคลาวด์และทำไมจึงต้องมีการแสดงความคิดเห็น (ซึ่งไม่ได้ใช้ไวยากรณ์ Shebang ปกติ) จะต้อง ?
ดังนั้นไร้สาระกันไวยากรณ์ที่ทำงานสำหรับuser.user-data
คือ
#cloud-config
write_files:
- content: |
# My new /etc/foo.bar file
Foo
Bar
path: /etc/foo.bar