L'approche DevOps consiste à fournir des changements et une infrastructure aux environnements de production aussi rapidement et automatiquement que possible. Dans le cadre du pipeline Azure DevOps, il est souvent nécessaire d'automatiser le déploiement de machines virtuelles, d'y installer des applications complexes et d'effectuer la configuration à distance à l'aide de scripts PowerShell.
L'objectif de cette automatisation est d'accélérer considérablement le déploiement de l'infrastructure, de réduire les erreurs en éliminant les opérations manuelles et d'améliorer la stabilité et la prévisibilité globales du processus.
Définition du problèmeLorsque vous essayez de mettre en œuvre l'automatisation décrite ci-dessus, vous pouvez souvent rencontrer un problème connu sous le nom d'erreur de second saut. Qu'est-ce que cela signifie en pratique ?
Le deuxième problème de saut se réfère à la situation suivante :
- Vous vous êtes connecté au serveur A.
- Ensuite, à partir du serveurA, vous établissez une connexion à distance via PowerShell avec le serveurB.
- Lorsque vous exécutez un cmdlet sur le serveur B via cette session à distance, il tente d'accéder à une ressource située sur le serveur C.
- Cependant, ce dernier rejette la demande car les informations d'identification passées pour se connecter de ServeurA à ServeurB ne sont pas transmises de ServeurB à ServeurC.
Ce problème se produit dans les pipelines Azure DevOps, l'agent sur lequel les pipelines sont exécutés est connecté à distance à la machine virtuelle via PowerShell Remote. Ainsi, l'agent est ServerB et la machine virtuelle est ServerC. En effet, le mécanisme d'authentification Kerberos standard ne permet pas de transférer les informations d'identification au-delà d'une étape.
Ce problème est particulièrement critique dans le cadre de DevOps, car il rompt le concept d'automatisation et de continuité des processus. Il entraîne souvent la nécessité de recourir à des « solutions de contournement manuelles » temporaires, ce qui a un impact négatif sur la productivité et augmente la probabilité d'erreurs.
Quels sont les moyens de résoudre ce problème ?Le problème du deuxième saut peut être résolu de plusieurs façons :
- Utilisation de CredSSP (Credential Security Support Provider).
- Utilisation de la délégation restreinte Kerberos.
- En pré-copiant toutes les ressources nécessaires localement sur la machine virtuelle avant d'exécuter le déploiement.
Dans le cadre de DevOps, l'utilisation de la technologie CredSSP est devenue très populaire car il s'agit de la solution la plus abordable malgré certains risques de sécurité.
Résoudre ce problème avec CredSSPPour résoudre le problème du second wadding dans le pipeline Azure DevOps, nous devons suivre deux étapes.
La première consiste à activer CredSSP sur l'agent Azure DevOps.