הגדרת סביבת פרוקסי בהורדת exec של Puppet
הגדירו ערכי סביבה במשאב exec שמריץ את Wget, עם שומר קובץ שהושלם עבור ההורדה.
למשאב exec של Puppet יש מאפיין 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 ברמת המכונה.