সল্টসটে জিনজা আউটপুট কীভাবে পরীক্ষা করবেন?


16

আমি SLSসল্টে একটি টেম্প্লেটেড পেয়েছি যা আমি তৈরির চেষ্টা করছি তবে এটি অবৈধ সিনট্যাক্স নির্গত করছে, যার ফলে ত্রুটিগুলি যেমন:

my-minion-id:
    - State 'system' in SLS 'network' is not formed as a list

বস্তুত, এটা করা সম্ভব হওয়া উচিত একরকম Jinja টেমপ্লেটের ফলাফল পরীক্ষা করার আগে এটি একটি যেমন আউটপুট পার্স করার প্রচেষ্টা SLSফাইল। জিনজা রেন্ডারারের জন্য পাইথন মডিউল রয়েছে salt.renderers.jinja, তবে আমি যদি এটি সিএলআইতে চালানোর চেষ্টা করি তবে আমি একটি ত্রুটি পেয়েছি:

# salt my-minion-id salt.renderers.jinja.render /srv/salt/network/init.sls
my-minion-id:
    'salt.renderers.jinja.render' is not available.
ERROR: Minions returned with non-zero exit code
# salt my-minion-id renderers.jinja.render /srv/salt/network/init.sls
my-minion-id:
    'renderers.jinja.render' is not available.
ERROR: Minions returned with non-zero exit code

আমি কীভাবে আমার টেম্পলেটটির আউটপুট দেখতে পারি? এটি ডিবাগ করা কঠিন হওয়া উচিত বলে মনে হচ্ছে এটি অযৌক্তিক।

উত্তর:


11

পরীক্ষা করে দেখুন slsutil.renderer মডিউল।

এটি আপনার যা করা উচিত তা করা উচিত

salt my-minion-id slsutil.renderer /srv/salt/network/init.sls 'jinja'

এই মডিউলটি কেবল আপনার জন্য সরাসরি compile_template ফাংশনটি কল করে।

সম্পাদনা করুন: /srv/salt/network/init.sls হল মাইননের পথ, যদি আপনি মাস্টারটিকে আপনার মাইনিন হিসাবে টার্গেট না করে থাকেন তবে আপনার সম্ভবত নিম্নলিখিতটি করা দরকার।

salt minion-id cp.cache_file salt://network/init.sls
salt minion-id slsutil.renderer /var/cache/salt/minion/files/base/network/init.sls

বা ক্যাশে_ফাইলে যে কোনও ফাইল থুথু দেয়।

আপনি যদি 2018.3 বা আরও নতুন হন তবে আপনি কেবল উল্লেখ করতে পারেন salt://network/init.sls


তবে / এসআরভি / লবণ / নেটওয়ার্ক কী পাথ? এটা কি মাস্টারের পথে? মাইনন?
শ্রীযুক্ত

এটি মিনিয়ানের একটি পথ। আপনি এটি করতে পারেন salt minion-id cp.cache_file salt://network/init.slsএবং তারপরে মাইনিশনে ক্যাশে যাওয়ার পরে ফিরে আসা ফাইলটির বিপরীতে slsutil.renderer চালাতে পারেন বা 2018.3 এ শুরু করে আপনি কেবল উল্লেখ করতে পারেনsalt://network/init.sls
gtmanfred ২

8

ঘনিষ্ঠ-সম্পর্কিত সমস্যার সাথে লড়াই করে আমি কয়েক সপ্তাহ আগে যে সময় কাটিয়েছি তা প্রদত্ত, আমি আশা করি এটি খুব শীঘ্রই বুঝতে পারতাম।

সমাধানটি salt.modules.cp.get_templateসল্ট মাইনিয়নটি ফাইলটি পুনরুদ্ধার করতে, টেম্প্লেটিং ইঞ্জিনের মাধ্যমে রেন্ডার করে এবং একটি পাঠযোগ্য স্থানে রাখার জন্য ব্যবহার করা হবে বলে মনে হয় :

# salt my-minion-id cp.get_template salt://network/init.sls /root/network.sls template=jinja
my-minion-id:
    /root/network.sls

সেখান থেকে, আপনি my-minion-idহোস্টের সাথে সংযোগ স্থাপন করুন এবং আপনি যে ফাইলটি রেখেছিলেন তা পরীক্ষা করুন /root/network.sls

এইবার বুঝতে পারছি; salt.renderers.jinjaহয় salt.renderers, নামস্থান যখন মডিউল আপনাকে থেকে CLI হয় এক্সেস আছে salt.modulesনামস্থান।

এটি একটি ডেটা ভিজিবিলিটি অবস্থান থেকে বোঝা যায়; টেমপ্লেট রেন্ডারিংটি মাইননে ঘটে , যেখানে শস্য এবং এগুলি পাওয়া যায়, এবং আমি এখনও এমন একটি মডিউল দেখতে পেলাম যা মিনিট কোডটি কার্যকর করে মাস্টারের কাছে স্বেচ্ছাসেবী আউটপুট কার্যকর করে (উদাহরণস্বরূপ, সি এল আইতে); ফিরে আসা ডেটা অলসভাবে সুসংগঠিত এবং সংক্ষিপ্ত। (এরকম কোনও মডিউল থাকতে পারে তবে আমি জানি না এটি কী test

সম্পাদনা: @ জিটিম্যানফ্রেডের উত্তরটি আরও ভাল এবং আরও সরাসরি এবং আমি এটি গ্রহণ করেছি। আমি এটিকে এখানে তথ্যমূলক উদ্দেশ্যে রেখে দিচ্ছি। এটি সেরা সমাধান নয়, তবে এটি এখনও কাজ করে।

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