मेरे पास ओपी की तुलना में थोड़ा अधिक विशिष्ट प्रश्न था लेकिन मुझे गलत काम करने में थोड़ा समय लगा। मैंने सोचा कि मैं इसे यहाँ पोस्ट करूँगा किसी और को समान रूप से स्टम्प करने में मदद करने के लिए।
मैं एक LXC / LXD Ubuntu 16.04 कंटेनर के लिए स्थिर नेटवर्किंग सेटिंग्स चाहता था जो Ubuntu 16.04 पर होस्ट किया गया था। मैंने कोशिश करके शुरू किया कि स्टीफन ने क्या लिखा है लेकिन यह काम नहीं कर रहा था। सभी मैं समाप्त हो गया था एक IPv6 लिंक स्थानीय के साथ डिफ़ॉल्ट डीएचसीपी-प्रयास कंटेनर था, क्योंकि मेरे कॉन्फ़िगरेशन में कोई डीएचसीपी नहीं परोसा जा रहा है।
मेरे आरंभिक YAML ने (कुछ) निम्नलिखित की तरह देखा ( क्लाउड-इनिट डॉक्स से लिया गया )।
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
यह तब तक नहीं था जब तक मुझे 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
पहली पंक्ति में रखते हैं, तो YAML को पार्स किया जाता है। मैं केवल यह मान सकता हूं कि कुछ सही नहीं है, या तो मेरी समझ, या किसी की प्रोग्रामिंग। इससे मुझे कोई मतलब नहीं है कि कुंजी के मूल्य के रूप में आपके द्वारा उपयोग किए जाने वाले YAML को user.user-data
क्लाउड कॉन्फ़िगरेशन डेटा के अलावा किसी अन्य चीज़ के रूप में उपयोग किया जाना चाहिए। कोई और क्यों करेगा कि अगर यह क्लाउड कॉन्फ़िगरेशन के लिए नहीं था, और इसलिए एक टिप्पणी (जो सामान्य शेबंग सिंटैक्स का उपयोग नहीं करता है) की आवश्यकता क्यों होगी ?
तो, एक तरफ बकवास है, जो वाक्य रचना के लिए काम किया user.user-data
है:
#cloud-config
write_files:
- content: |
# My new /etc/foo.bar file
Foo
Bar
path: /etc/foo.bar