পুতুল, হাইরা এবং এরব - এরব অ্যারে চিনতে পারে না


0

আমি একটি খুব বিরক্তিকর ত্রুটি আছে আমি সংশোধন করতে মরিয়া। আমার একটি পুতুল মডিউল রয়েছে যেখানে কিছু জিনিস ইয়ামল ফাইল (হাইরা) এ রাখা হয় যাতে লোকেরা কেবল সেই অংশটি সম্পাদন করতে পারে।

কাঠামো বাসা বাঁধে।

এই জাতীয় টেমপ্লেট:

<%= @platforms[@platform]['users_allowed'][@host].class %>

এটি রেন্ডার করে:

Array

তবে যখন আমি এটির উপর পুনরাবৃত্তি করার চেষ্টা করব:

<% @platforms[@platform]['users_allowed'][@host].each do | pubkey | %>
<%= pubkey %>
<% end %>

পুতুল বলেছেন:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template somemodule/templates/authorized_keys.erb:
Filepath: /etc/puppet/modules/somemodule/templates/authorized_keys.erb
Line: 1
Detail: undefined method `each' for nil:NilClass

এটি হঠাৎ কীভাবে শূন্য হয়ে যায় এবং আমি এখানে পুনরুক্তি করব কীভাবে?

আমি আশঙ্কা করছি যে আমি এখানে আটকে গিয়েছি এবং এমনকি ঠিক নেই যে সমাধানের জন্য আমার কোন দিকে অনুসন্ধান করা উচিত।

হাইরা ছাড়াই বা নেস্টেড কাঠামো ছাড়াই মডিউল পুনর্লিখন করা এই এক ক্ষেত্রে বিকল্প নয়।


পুতুলের কি সংস্করণ?
জিফার

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

উত্তর:


1

আমি আমার পুতুল এবং সঠিক সিনট্যাক্স যা পরীক্ষা করেছিলাম তা পরীক্ষা করেছি:

<% @platforms[@platform]['users_allowed'][@host].each do | pubkey | -%>
  <%= pubkey %>
<% end -%>

আমি আশা করি আমি সাহায্য করেছি।


আপনি পুতুলের কোন সংস্করণ চালান? আমি মনে করি একটি পাইপ বাদ দেওয়া অবশ্যই সহায়তা করবে না এবং যদি তা করে তবে আমি সমস্যায় আছি। মানে, রুবি অ্যারেতে i | বৈধ, তাই এটি erb তেও বৈধ হওয়া উচিত।
রোমান গ্রাজদান

আমি টাইপ করার সময় আমি একটি টাইপ করতে ভুলে গেছি। আমি ইতিমধ্যে ঠিক করেছি। ভুলের জন্য দুঃখিত. আপনার প্রশ্নের উত্তর: পুতুল 3.4.3। ডকুমেন্টেশনের পরামর্শ অনুযায়ী আমি ব্যবহার করেছি: docs.puppetlabs.com/learning/templates.html
পোলিভক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.