পুতুল ম্যানিফেস্টে ব্যবহৃত কমান্ড আর্গুমেন্টে অন্তর্নিহিত ফাইল সামগ্রী


1

আমার কাছে একটি এসকিউএল কমান্ড রয়েছে যা আমি জেএসএন নোডের মান হিসাবে ব্যবহার করতে চাই, যা একটি সূচক সংজ্ঞার অংশ। এই সমস্ত কিছুই পুতুল ম্যানিফেস্টে কমান্ড হিসাবে পাস করা হয়। আমি এসকিএল স্ক্রিপ্টটি বহিরাগত করতে চাই যাতে এটি স্বাধীনভাবে সম্পাদনা করা যায় তবে কীভাবে এটি সমস্ত ভালভাবে চালানো যায় তা বুঝতে পারি না।

পুতুল ম্যানিফেস্ট:

...
exec { 'create_index':
  command => 'curl -XPUT http://localhost:9200/_river/my_jdbc_river/_meta -d "{ \"type\": \"jdbc\", \"jdbc\": \"sql\": \"`cat /vagrant/puppet/scripts/data.sql`\" } }"
}
...

সমস্যাটি হ'ল পাঠযোগ্যতা বাড়াতে আমার কাছে নতুন লাইন রয়েছে এবং সূচিটি গঠনের জন্য আমি এই জাতীয় উক্তি ব্যবহার করি:

এসকিউএল স্ক্রিপ্ট (ডেটা.এসকিউএল):

SELECT
  name as "data.name",
  description as "data.description"
FROM
  data

আমি কি এটিকে টানতে পারি এমন কোনও উপায় আছে?


আপনি কি আপনার প্রশ্নে বিস্তারিত বলতে পারবেন? আমি নিশ্চিত নই যে আপনি এসকিএল স্ক্রিপ্টটি বহিরাগত দ্বারা কী বোঝাতে চাইছেন যাতে এটি স্বাধীনভাবে সম্পাদনা করা যায়।
স্পুডার

উত্তর:


0

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

যদি আপনি এগুলি থেকে বাঁচতে চান, আপনাকে প্রতিটি নিউলাইনটিকে একটি পালানোর অনুক্রমের সাথে প্রতিস্থাপন করতে হবে। আপনার শেষের বিন্দুতে পালানো নিউলাইনগুলি সনাক্ত করতে হবে এবং আরও প্রক্রিয়াজাতকরণের আগে তাদের নিয়মিত নতুন লাইনে ফিরে যেতে হবে।

exec { 'create_index':
  command => 'curl -XPUT http://localhost:9200/_river/my_jdbc_river/_meta -d "{ \"type\": \"jdbc\", \"jdbc\": \"sql\": \"`cat /vagrant/puppet/scripts/data.sql | tr \'\\n\' \'\\\\n\'`\" } }"'
}

অন্য বিকল্পটি হ'ল নতুন লাইনটি সরিয়ে ফেলা। শেষের বিন্দুতে সংশোধন না করার সুবিধা রয়েছে:

exec { 'create_index':
  command => 'curl -XPUT http://localhost:9200/_river/my_jdbc_river/_meta -d "{ \"type\": \"jdbc\", \"jdbc\": \"sql\": \"`cat /vagrant/puppet/scripts/data.sql | tr \'\\n\' \' \'`\" } }"'
}

তবে আমি একটি পৃথক স্ক্রিপ্ট তৈরি করার পরামর্শ দিচ্ছি যা কেবল এসকিউএল ফাইলের দিকেই যায় এবং সমস্ত যাদু করে এবং ক্রিয়েট_ইন্ডেক্স কমান্ডটি সেই স্ক্রিপ্টটি কল করে:

exec { 'create_index':
  command => '/vagrant/puppet/scripts/create_index.sh /vagrant/puppet/scripts/data.sql'
}

#!/bin/sh

file=$1
contents=`cat "$file"`

return curl -XPUT http://localhost:9200/_river/my_jdbc_river/_meta -d "{ \"type\": \"jdbc\", \"jdbc\": \"sql\": \"${contents}\" }"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.