পুতুল কেবল তখনই চালিত হয় যখন ফাইলের অস্তিত্ব থাকে না


11

আমি কেবল তখনই নিম্নলিখিত কমান্ডটি সম্পাদন করতে চাই যখন ফাইল (/ usr / local / bin / papply) উপস্থিত না থাকে। সেখানে কি রাখা নিশ্চিত নয়।

    exec { 'git add url':
        command =>'git remote add origin https://github.com/testing/puppet.git',
        require => Exec['git init'],
        cwd => '/home/vagrant/django',
        user => 'vagrant',
        onlyif => "not sure what to put here"
    }

উত্তর:


22

আপনি কি এই চেষ্টা করেছেন?

onlyif => "test ! -f /usr/local/bin/papply"

নিশ্চিত নয় যে পুতুল '' ব্যবহার করতে পারেন কিনা! চরিত্র

সম্ভবত আরও ভাল বিকল্প:

creates => '/usr/local/bin/papply'

এমনকি যদি কমান্ডটি আসলে ফাইলটি তৈরি করে না তবে আমি এটি পছন্দ করি না


কাজ করছে না, এই ত্রুটি বার্তাটি পেয়েছে। মূল্যায়ন করা যায়নি: 'কমান্ড খুঁজে পাওয়া যায়নি!'
কিঙ্কিং 126

আর এই: onlyif => "! পরীক্ষা -f, / usr / local / bin / papply"
sebastien.prudhomme

=> '/ usr / স্থানীয় / বিন / papply' কাজ করে, আপনাকে ধন্যবাদ। আমাকে আপনার আপডেটগুলি পরীক্ষা করতে দাও, এইচটিএইচটি কাজ করে কিনা তা দেখুন।
কিঙ্কিং 126

1
onlyif => "পরীক্ষা! -ফ / ইউএসআর / লোকাল / বিন / প্যাপ্লি" কাজ করে, এছাড়াও আমি যেটি ব্যবহার করতে পছন্দ করি। ধন্যবাদ.
কিঙ্কিং 126

7

আপনি যদি লিনাক্সে থাকেন তবে ঠিক করুন

unless => 'ls /somefile'

ফাইল উপস্থিত না থাকলে ls একটি শূন্য-বিহীন রিটার্ন কোড সহ ফিরে আসবে এবং যদি না কেবলমাত্র নির্বাহককে এটি সম্পাদন করতে দেয় তবে তার পরীক্ষাটি যদি শূন্য-বহির্ভূত কোড ফেরত দেয় তবে।


1

লিনাক্স এবং পুতুলে> 3.8 চেষ্টা করুন:

exec { 'test':
   command => '/bin/echo HI',
   unless  => 'test -f /a/file.txt',
}

/a/file.txtউপস্থিত থাকলে চালানো হবে না ।


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