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 жазуусу Wgetте конфигурацияланган же сакталган прокси күбөлүктөрү жок болгондо уруксат берилген коомдук артефакт жүктөө үчүн прокси URLин бере алат. Башка exec ресурсу жасаган экспорт гана ошол башка процессте жана анын урпактарында жарактуу. Эки ресурсту иретке келтирүү биринчисинин shell чөйрөсүн экинчисинде туруктуу кылбайт.

Бул ресурстун чөйрөсүн ресурс менен бирге кармаңыз. Башка Puppet операциялары машина боюнча Wget баштоо файлын өзгөртпөстөн өздөрүнүн конфигурацияланган маршруттарын колдоно алышат.

Тектеш макалалар