previous = Chef::Config[:http_proxy]
Chef::Config[:http_proxy] = 'http://proxy.example.net:8080'

remote_file '/var/tmp/package.zip' do
  source 'https://downloads.example.net/package.zip'
end

Chef::Config[:http_proxy] = previous

La valeur temporaire a disparu avant que cette ressource ordinaire ne télécharge quoi que ce soit :

  1. Compile: le Ruby de haut niveau enregistre la valeur, définit le proxy temporaire, déclare remote_file et rétablit la valeur.
  2. Converge: la ressource exécute son action avec la configuration alors disponible.

Un proxy client stable avec des exclusions internes adaptées évite ce problème de synchronisation. Utilisez la syntaxe d’exclusion documentée du client installé plutôt que de supposer des règles de jokers du shell. Pour un téléchargement indépendant d’un artefact public sur une route publique autorisée, une entrée d’une liste de proxys HTTP peut fournir le point de terminaison HTTP stable lorsque le client Chef n’a aucun compte proxy configuré ni conservé. Conservez ses exclusions internes ; choisir une adresse ne change pas le moment où compile et converge la consomment.

Si une opération a besoin d’une route particulière, placez sa modification de configuration et son exécution dans la même portée. Une ressource personnalisée au comportement unified-mode approprié est une option, mais Chef::Config reste global. Rétablissez-le lorsque le téléchargement échoue et lorsque le fichier est déjà à jour. Une notification de mise à jour ne s’exécute pas inconditionnellement, et une ressource de nettoyage ultérieure peut ne jamais s’exécuter après une exception.

Une propriété lazy source reporte l’évaluation de cette propriété, pas les affectations Ruby environnantes. L’exécution de ressources au moment de la compilation est un choix pris en charge distinct lorsque c’est alors que le téléchargement a sa place ; elle modifie aussi le calendrier des dépendances et des notifications. Choisissez selon le moment où le client HTTP consomme son réglage de proxy, plutôt que d’attendre de l’ordre de déclaration qu’il apporte une isolation.

Articles similaires