2 votes

Les paramètres du proxy de l'agent Azure Pipelines ne fonctionnent pas comme prévu

Lors de la configuration d'un agent de construction local sur un serveur Windows 2016, j'utilise les paramètres de configuration de proxy suivants :

.\config.cmd --proxyurl http://192.3.4.5:8080 --sslskipcertvalidation

Cela permet au serveur de construction de se connecter à Azure DevOps derrière le proxy sans problème, mais la construction powershell a du mal à se connecter à l'internet. J'ai résolu ce problème en définissant une variable d'environnement au début de la commande de construction comme suit :

$env:http_proxy = "192.3.4.5:8080"

Le dernier problème est qu'une étape de la construction nécessite de se connecter à une VM hébergée directement sur le serveur de construction et qu'il ne peut pas se connecter. J'ai essayé de configurer le fichier .proxybypass de l'agent comme suit :

localhost
192\.3\.4\.*

Cette mesure n'a toutefois pas permis de résoudre le problème. Une idée sur la manière de paramétrer la dérivation du proxy dans l'étape de construction ? Y a-t-il une autre variable d'environnement powershell que je pourrais définir ?

1voto

jessehouwing Points 16951

Les paramètres du proxy garantissent que l'agent peut appeler. Les tâches reposent sur un grand nombre de technologies différentes et utilisent chacune des configurations de proxy, des masques IP et des listes blanches différents. Ainsi, si votre agent se trouve derrière un proxy, il se peut que vous deviez configurer un grand nombre de paramètres de proxy différents sur cette machine. C'est pénible. Même pour les auteurs de tâches, comme moi, qui ne peuvent pas simplement prendre la configuration de l'agent et la copier une à une sur la technologie dont dépend chaque tâche.

Powershell s'appuie sur la configuration du proxy des paramètres Internet de Windows pour l'utilisateur qui exécute la tâche. Vous pouvez également remplacer la configuration du proxy .NET Powershell s'appuie sur les paramètres du proxy .NET, la façon de les modifier à la volée est indiquée ici : https://stackoverflow.com/a/209072/736079

Utilisez la classe .NET dans la compilation powershell :

[net.webrequest]::defaultwebproxy = new-object net.webproxy "http://$env:proxy_ip" 

puis ajouter

[system.net.webrequest]::defaultwebproxy.BypassProxyOnLocal = $true

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X