Puppet-এর exec রিসোর্সের একটি environment অ্যাট্রিবিউট আছে। প্রক্সি মানগুলো ডাউনলোডারকে আহ্বানকারী রিসোর্সে রাখুন:

file { '/var/cache/myapp':
  ensure => directory,
}

exec { 'fetch-artifact':
  provider    => shell,
  command     => '/usr/bin/wget --tries=1 --timeout=20 -O /var/cache/myapp/artifact.part https://downloads.example.net/artifact-v1.bin && /usr/bin/mv /var/cache/myapp/artifact.part /var/cache/myapp/artifact-v1.bin',
  environment => [
    'http_proxy=http://proxy.example.net:8080',
    'https_proxy=http://proxy.example.net:8080',
  ],
  creates     => '/var/cache/myapp/artifact-v1.bin',
  require     => File['/var/cache/myapp'],
}

উদাহরণটি ধরে নেয় Wget ও mv ওই পথগুলোতে আছে। ব্যর্থ স্থানান্তর অস্থায়ী পাথনাম রেখে যায়; চূড়ান্ত পাথনাম কেবল Wget সফল হওয়ার পরেই বসানো হয়। এরপর creates গার্ড পরবর্তী সম্পাদনগুলো এড়িয়ে যায় যতদিন সম্পূর্ণ সংস্করণযুক্ত ফাইলটি থাকে।

Puppet এই কমান্ড চালানোর সময় এনভায়রনমেন্ট অ্যারে মান সরবরাহ করে। HTTP প্রক্সি তালিকার একটি HTTP এন্ট্রি অনুমোদিত পাবলিক-আর্টিফ্যাক্ট ডাউনলোডের জন্য প্রক্সি URL দিতে পারে, যখন Wget-এ কোনো কনফিগার করা বা সংরক্ষিত প্রক্সি শংসাপত্র নেই। অন্য exec রিসোর্সের করা এক্সপোর্ট কেবল সেই অন্য প্রক্রিয়া ও তার উত্তরসূরিদের মধ্যে থাকে। দুটি রিসোর্স ক্রমানুসারে সাজালেও প্রথমটির shell এনভায়রনমেন্ট দ্বিতীয়টিতে স্থায়ী হয় না।

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

সম্পর্কিত নিবন্ধ