বিধানের সময় ক্লাউড কনফিগারারের সাথে lxd পাত্রে কনফিগার করার কোনও উপায় আছে কি?


10

বিশেষত, সিএলআই সরঞ্জামগুলির সাথে- ওপেনস্ট্যাক নয়।

আমি lxd সহ একটি স্থানীয় ডেভ সেটআপ দেখতে কেমন তা দেখছি তবে নতুন পাত্রে কনফিগার করার ক্ষেত্রে খালি হাতে আসছি।

এলএক্সডি পাত্রে কনফিগার করার জন্য কোনও আইডিয়োমেটিক (বা অন্যথায়) উপায় আছে? আমার কি ডকারের চিত্রের মতো আরও কিছু পরিবর্তনহীন কিছুর দিকে নজর দেওয়া উচিত?

ধন্যবাদ। কোনও সংস্থান বা পয়েন্টার প্রশংসা করা হবে।

উত্তর:


13

সুতরাং এমন একাধিক উপায় রয়েছে যা আপনি সরাসরি পাত্রে সরাসরি করতে পারেন:

lxc init ubuntu: CONTAINER
lxc config set CONTAINER user.user-data - < cloud-init-config.yml
lxc start CONTAINER

বা আরও ছোট:

lxc launch ubuntu: CONTAINER --config=user.user-data="$(cat cloud-init-config.yml)"

বা একটি প্রোফাইলের মাধ্যমে:

lxc profile create dev
lxc profile set dev user.user-data - < cloud-init-config.yml
lxc launch ubuntu: CONTAINER -p default -p dev

.Ml এর পরিবর্তে .sh ফাইলগুলি কীভাবে ব্যবহার করা যায়? এই বিষয়ে ইতিমধ্যে কোন টিউটোরিয়াল উপলব্ধ?
গ্রেগ

উপরের এই প্রশ্নের প্রসঙ্গে: স্ট্যাকওভারফ্লো
গ্রেগ

3

আমি আজ একটি লাইনার নিয়ে গিয়েছিলাম, এটি নতুন ধারকগুলির জন্য এটি ডিফল্ট প্রোফাইলে সেট করে:

echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc profile set default user.user-data -

এটি এটি কোনও বিদ্যমান পাত্রে সেট করে তবে সাবধান থাকুন যে এসএসএইচ কী স্টাফ হিসাবে কেবল বুট হয়েছে এমন পাত্রে এটি প্রথম কাজ করবে না:

echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | lxc config set CONTAINER_NAME user.user-data -


3

ওপি থেকে আমার কিছুটা সুনির্দিষ্ট প্রশ্ন ছিল তবে আমি কী ভুল করছি তা কাজে লাগাতে আমার কিছুটা সময় লেগেছিল। আমি ভেবেছিলাম যে অন্য কাউকে একইভাবে স্ট্যাম্প করতে সহায়তা করতে আমি এটি এখানে পোস্ট করব।

আমি উবুন্টু 16.04 এ হোস্ট করা একটি এলএক্সসি / এলএক্সডি উবুন্টু 16.04 ধারকটির জন্য স্থিতিশীল নেটওয়ার্কিং সেটিংস চেয়েছিলাম। স্টাফেন যা লিখেছিলেন তা চেষ্টা করেই শুরু করেছিলাম তবে তা কার্যকর হয়নি। আমার সমস্ত শেষটি আইপিভি 6 লিঙ্কের স্থানীয় ডিফল্ট ডিএইচসিপি-প্রয়াসকারী ধারক ছিল, কারণ আমার কনফিগারেশনে কোনও ডিএইচসিপি সরবরাহ করা হয়নি।

আমার প্রাথমিক YAML নীচের মতো (কিছু ক্লাউড- init ডক্স থেকে নেওয়া) দেখেছিল ।

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

সুতরাং আমার চূড়ান্ত ওয়াইএএমএল দেখতে (এমন কিছু) লাগছিল।

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

নীচের কমান্ডটি প্রয়োগ করে নীচের ওয়াইএএমএল প্রয়োগ করা হয়েছে (সঠিকভাবে সন্ধান করা সত্ত্বেও 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 স্পষ্টভাবে কীটির মান হিসাবে লোড করেছেন তা user.user-dataক্লাউড কনফিগারেশন ডেটা ব্যতীত অন্য কোনও হিসাবে ব্যবহার করা উচিত। অন্য কেউ কেন এটি করবে যদি এটি ক্লাউড কনফিগারেশন না বোঝানো হত, এবং সুতরাং কেন একটি মন্তব্য (যা এমনকি সাধারণ শেবাং সিনট্যাক্স ব্যবহার করে না) প্রয়োজন হবে কেন?

সুতরাং, আজেবাজে কথা বাদ দিয়ে বাক্য গঠনটি user.user-dataহ'ল:

#cloud-config

write_files:
  - content: |
      # My new /etc/foo.bar file

      Foo
      Bar

    path: /etc/foo.bar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.