Ο πόρος 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 ισχύει μόνο σε εκείνη τη διεργασία και τους απογόνους της. Η σειρά δύο πόρων δεν κάνει το περιβάλλον κελύφους του πρώτου να παραμείνει στο δεύτερο.

Κρατήστε το περιβάλλον αυτού του πόρου μαζί με τον πόρο. Άλλες λειτουργίες του Puppet μπορούν να χρησιμοποιούν τις δικές τους ρυθμισμένες διαδρομές χωρίς να αλλάζουν το αρχείο εκκίνησης του Wget για όλο το μηχάνημα.

Σχετικά άρθρα