Lorsque vous configurez votre pipeline, vous ajoutez des types de tâches spécifiques que le pipeline exécute pour les actions dont vous avez besoin. Chaque type de tâche s'intègre à une autre application et active votre pipeline au cours de la construction, des tests et de la livraison de vos applications.

Pour exécuter votre pipeline, que vous deviez extraire des artefacts d'un référentiel pour le déploiement, exécuter un script distant ou demander l'approbation d'une opération utilisateur à un membre de l'équipe, Code Stream a le type de tâche qu'il vous faut !

Code Stream prend en charge l'annulation d'une exécution de pipeline sur divers types de tâches. Lorsque vous cliquez sur Annuler sur l'exécution d'un pipeline, la tâche, l'étape ou l'intégralité du pipeline passe à l'état d'annulation et annule l'exécution du pipeline.

Code Stream vous permet d'annuler l'exécution du pipeline sur une tâche, une étape ou l'intégralité du pipeline lors de l'utilisation de ces tâches :
  • Jenkins
  • SSH
  • PowerShell
  • Opération de l'utilisateur
  • Pipeline
  • Modèle de cloud
  • vRO
  • POLL

Code Stream ne propage pas le comportement d'annulation aux systèmes tiers pour ces tâches : CI, Intégration personnalisée ou Kubernetes. Code Stream marque la tâche comme annulée et cesse immédiatement d'extraire l'état sans attendre la fin de la tâche. La tâche peut se terminer ou échouer sur le système tiers, mais cesse immédiatement de s'exécuter dans Code Stream lorsque vous cliquez sur Annuler.

Avant d'utiliser une tâche dans votre pipeline, vérifiez que le point de terminaison correspondant est disponible.

Tableau 1. Obtenir une approbation ou définir un point de décision
Type de tâche Fonctionnement Exemples et détails
Opération de l'utilisateur

Active une tâche d'opération d'utilisateur qui contrôle le moment où un pipeline s'exécute et doit s'arrêter pour approbation.

Reportez-vous à la section Comment exécuter un pipeline et afficher les résultats. et Gestion de l'accès et des approbations utilisateur dans Code Stream.

Condition

Ajoute un point de décision qui détermine si le pipeline continue à s'exécuter, ou s'arrête, en fonction des expressions de condition. Lorsque la condition est true, le pipeline exécute des tâches successives. Lorsqu'elle est false, le pipeline s'arrête.

Reportez-vous à la section Utilisation des liaisons de variables dans une tâche de condition pour l'exécution ou l'arrêt d'un pipeline dans Code Stream.

Tableau 2. Automatiser l'intégration et le déploiement continus
Type de tâche Fonctionnement Exemples et détails
Modèle de cloud

Déploie un modèle de cloud d'automatisation à partir de GitHub et provisionne une application, puis automatise l'intégration continue et la livraison continue (CICD) de ce modèle de cloud pour votre déploiement.

Reportez-vous à la section Automatisation de la publication d'une application déployée à partir d'un modèle de cloud YAML dans Code Stream.

Les paramètres du modèle de cloud s'affichent lorsque vous sélectionnez Créer ou Mettre à jour, puis sélectionnez Modèle de cloud et Version. Vous pouvez ajouter ces éléments, qui adaptent les liaisons de variables aux zones de texte d'entrée dans la tâche de modèle de cloud :

  • Entier
  • Chaîne d'énumération
  • Valeur booléenne
  • Variable de tableau

Lorsque vous utilisez la liaison de variable dans l'entrée, vous devez connaître ces exceptions. Pour les énumérations, vous devez sélectionner une valeur d'énumération à partir d'un ensemble fixe. Pour les valeurs booléennes, vous devez entrer la valeur dans la zone de texte saisie.

Le paramètre du modèle de cloud apparaît dans la tâche de modèle de cloud lorsqu'un modèle de cloud de Cloud Assembly inclut des variables d'entrée. Par exemple, si un modèle de cloud dispose d'un type d'entrée Integer, vous pouvez entrer l'entier directement ou sous la forme d'une variable à l'aide d'une liaison de variables.

CI

La tâche CI permet l'intégration continue de votre code dans votre pipeline en extrayant une image de build Docker à partir d'un point de terminaison de registre et en la déployant sur un cluster Kubernetes.

La tâche CI affiche 100 lignes du journal en tant que sortie et affiche 500 lignes lorsque vous téléchargez les journaux.

Les tâches CI nécessitent les ports éphémères 32768 à 61000.

Reportez-vous à la section Planification d'une build native CICD dans Code Stream avant d'utiliser le modèle de pipeline intelligent.

Personnalisé

La tâche personnalisée intègre Code Stream à vos propres outils de générations, de tests et de déploiement.

Reportez-vous à la section Intégration d'outils de génération, de test et de déploiement propres avec Code Stream.

Kubernetes

Automatiser le déploiement de vos applications logicielles sur des clusters Kubernetes.

Reportez-vous à la section Automatisation de la publication d'une application dans Code Stream sur un cluster Kubernetes.

Pipeline

Imbrique un pipeline dans un pipeline principal. Lorsqu'un pipeline est imbriqué, il se comporte comme une tâche dans le pipeline principal.

Dans l'onglet Tâche du pipeline principal, vous pouvez facilement accéder au pipeline imbriqué en cliquant sur le lien y donnant accès. Le pipeline imbriqué s'ouvre dans un nouvel onglet du navigateur.

Pour rechercher des pipelines imbriqués dans Exécutions, entrez imbriqué dans la zone de recherche.

Tableau 3. Intégrer des applications de développement, de test et de déploiement
Type de tâche Effets Exemples et détails
Bamboo

Interagit avec un serveur d'intégration continue (CI) Bamboo, qui génère, teste et intègre en permanence des logiciels en préparation du déploiement, et déclenche des builds de code lorsque les développeurs valident les modifications. Il expose les emplacements d'artefact que la build Bamboo produit afin que la tâche puisse générer les paramètres que d'autres tâches utiliseront pour la génération et le déploiement.

Connectez-vous à un point de terminaison de serveur Bamboo et démarrez un plan de build Bamboo à partir de votre pipeline.

Jenkins

Déclenche des tâches Jenkins qui génèrent et testent votre code source, exécute des cas de test et peut utiliser des scripts personnalisés.

Reportez-vous à la section Intégration de Code Stream à Jenkins.

TFS

Vous permet de connecter votre pipeline à Team Foundation Server pour gérer et appeler des projets de build, y compris des tâches configurées qui génèrent et testent votre code.

Pour connaître les versions de Team Foundation Server prises en charge par Code Stream, consultez Présentation des points de terminaison dans Code Stream.

vRO

Étend la capacité de Code Stream en exécutant des workflows prédéfinis ou personnalisés dans vRealize Orchestrator.

Code Stream prend en charge l'authentification de base et l'authentification basée sur des jetons pour vRealize Orchestrator. Code Stream utilise le jeton d'API pour authentifier et valider le cluster vRealize Orchestrator. Avec l'authentification par jeton, Code Stream prend en charge les points de terminaison vRealize Orchestrator qui utilisent un proxy d'extensibilité de cloud. Par conséquent, dans Code Stream, vous pouvez déclencher des workflows avec un point de terminaison vRealize Orchestrator qui utilise le proxy d'extensibilité de cloud.

Reportez-vous à la section Intégration de Code Stream à vRealize Orchestrator.

Tableau 4. Intégrer d'autres applications via une API
Type de tâche Effets Exemples et détails
REST

Intègre Code Stream à d'autres applications qui utilisent une REST API afin de pouvoir développer et fournir en continu des applications logicielles qui interagissent entre elles.

Reportez-vous à la section Utilisation d'une REST API pour intégrer Code Stream à d'autres applications.

Interrogation

Appelle une REST API et l'interroge jusqu'à ce que la tâche de pipeline réponde aux critères de sortie et se termine.

Un administrateur Code Stream peut définir le nombre d'interrogations sur un maximum de 10 000. L'intervalle d'interrogation doit être supérieur ou égal à 60 secondes.

Lorsque vous cochez la case Continuer en cas d'échec, si le nombre ou l'intervalle dépasse ces valeurs, la tâche d'interrogation continue à s'exécuter.

POLL Iteration Count : figure dans l'exécution du pipeline et affiche le nombre de fois que la tâche POLL a demandé une réponse à partir de l'URL. Par exemple, si l'entrée POLL est 65 et que la demande POLL est exécutée 4 fois, le nombre d'itérations dans la sortie d'exécution du pipeline est 4 (sur 65).

Reportez-vous à la section Utilisation d'une REST API pour intégrer Code Stream à d'autres applications.

Tableau 5. Exécuter des scripts distants et définis par l'utilisateur
Type de tâche Fonctionnement Exemples et détails
PowerShell

Avec la tâche PowerShell, Code Stream peut exécuter des commandes de script sur un hôte distant. Par exemple, un script peut automatiser des tâches de test et exécuter des types administratifs de commandes.

Le script peut être distant ou défini par l'utilisateur. Il peut se connecter via HTTP ou HTTPS, et peut utiliser TLS.

L'hôte Windows doit disposer du service winrm configuré, et winrm doit disposer de MaxShellsPerUser et MaxMemoryPerShellMB configurés.

Pour exécuter une tâche PowerShell, vous devez disposer d'une session active sur l'hôte Windows distant.

Longueur de la ligne de commande PowerShell

Si vous entrez une commande PowerShell en base 64, sachez que vous devez calculer la longueur de la commande globale.

Le pipeline Code Stream encode et encapsule une commande PowerShell en base 64 dans une autre commande, ce qui augmente la longueur globale de la commande.

La longueur maximale autorisée pour une commande PowerShell winrm est de 8 192 octets. La limite de longueur de la commande est inférieure pour la tâche PowerShell lorsqu'elle est codée et encapsulée. Vous devez donc calculer la longueur de la commande avant d'entrer la commande PowerShell.

La limite de longueur de la commande pour la tâche PowerShell Code Stream dépend de la longueur codée en base 64 de la commande d'origine. La longueur de la commande est calculée de la manière suivante.

3 * (length of original command / 4)) - (numberOfPaddingCharacters) + 77 (Length of Write-output command)

La longueur de la commande pour Code Stream doit être inférieure à la limite maximale de 8 192.

Lorsque vous configurez MaxShellsPerUser et MaxMemoryPerShellMB :

  • La valeur acceptable pour MaxShellsPerUser est de 500 pour 50 pipelines simultanés, avec 5 tâches PowerShell par pipeline. Pour définir la valeur, exécutez : winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • La valeur de mémoire acceptable pour MaxMemoryPerShellMB est de 2 048. Pour définir la valeur, exécutez : winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

Le script écrit la sortie dans un fichier de réponse qu'un autre pipeline peut utiliser.

SSH

La tâche SSH permet à la tâche de script shell Bash d'exécuter des commandes de script sur un hôte distant. Par exemple, un script peut automatiser des tâches de test et exécuter des types administratifs de commandes.

Le script peut être distant ou défini par l'utilisateur. Il peut se connecter via HTTP ou HTTPS, et nécessite une clé privée ou un mot de passe.

Le service SSH doit être configuré sur l'hôte Linux et la configuration SSHD de MaxSessions doit être définie sur 50.

Si vous exécutez plusieurs tâches SSH simultanément, augmentez MaxSessions et MaxOpenSessions sur l'hôte SSH. N'utilisez pas votre instance de vRealize Automation en tant qu'hôte SSH si vous devez modifier les paramètres de configuration MaxSessions et MaxOpenSessions.

La tâche SSH ne prend pas en charge les clés privées de type OpenSSH. Générez la paire de clés publique/privée à l’aide de l’une des méthodes suivantes :
  • Sur une machine Windows, utilisez PuTTYgen pour générer la paire de clés.
  • Sur une machine Mac ou Linux, utilisez ssh -V pour vérifier que la version SSH est antérieure à la version 7.8, puis utilisez ssh -keygen pour générer la paire de clés dans une fenêtre de terminal.
Note : Vérifiez que la clé générée ne s'affiche pas avec BEGIN OPENSSH PRIVATE KEY.
Si la clé publique générée est une clé autorisée dans la machine distante, reportez-vous à l'un des articles suivants pour modifier le format privé OpenSSH :

Lors de la configuration de la tâche SSH, la clé privée doit être entrée en texte brut. L'enregistrement de la clé en tant que variable ou entrée modifie le format de la clé et la tâche de pipeline ne parvient pas à s'exécuter.

Le script peut être distant ou défini par l'utilisateur. Par exemple, un script peut ressembler à ce qui suit :

message="Hello World" echo $message

Le script écrit la sortie dans un fichier de réponse qu'un autre pipeline peut utiliser.