Quando si configura la pipeline, si aggiungono tipi di attività specifici che vengono eseguiti per le azioni necessarie. Ogni tipo di attività si integra con un'altra applicazione e abilita la pipeline quando crea, testa e consegna le applicazioni.

Per eseguire la pipeline, quando è necessario estrarre gli elementi da un repository per la distribuzione, eseguire uno script remoto o richiedere l'approvazione per un'operazione utente da un membro del team, Code Stream offre il tipo di attività richiesta.

Code Stream supporta l'annullamento dell'esecuzione di una pipeline su vari tipi di attività. Quando si fa clic su Annulla durante l'esecuzione di una pipeline, l'attività, la fase o l'intera pipeline passa allo stato di annullamento e annulla l'esecuzione della pipeline.

Code Stream consente di annullare l'esecuzione della pipeline in un'attività, in staging o nell'intera pipeline quando si utilizzano queste attività:
  • Jenkins
  • SSH
  • PowerShell
  • Operazione utente
  • Pipeline
  • Modello cloud
  • vRO
  • Polling

Code Stream non propaga il comportamento di annullamento ai sistemi di terze parti per queste attività: CI, Integrazione personalizzata o Kubernetes. Code Stream contrassegna l'attività come annullata e interrompe immediatamente il recupero dello stato senza attendere il completamento dell'attività. L'attività potrebbe essere completata o non riuscire nel sistema di terze parti, ma smette immediatamente di funzionare in Code Stream quando si fa clic su Annulla.

Prima di utilizzare un'attività nella pipeline, verificare che sia disponibile l'endpoint corrispondente.

Tabella 1. Ottenere un'approvazione o impostare un punto di decisione
Tipo di attività Funzioni Esempi e dettagli
Operazione utente

Un'attività Operazione utente abilita un'approvazione richiesta che controlla quando una pipeline viene eseguita e quando deve essere interrotta per l'approvazione.

Vedere Come eseguire una pipeline e visualizzare i risultati. e Come gestire accesso utente e approvazioni in Code Stream.

Condizione

Aggiunge un punto di decisione, che determina se la pipeline continua a essere eseguita o si interrompe, in base alle espressioni di condizione. Quando la condizione è true, la pipeline esegue le attività successive. Quando è false, la pipeline si interrompe.

Vedere Come utilizzare le associazioni di variabili in un'attività di condizione per eseguire o arrestare una pipeline in Code Stream.

Tabella 2. Automatizzare l'integrazione e la distribuzione continue
Tipo di attività Funzioni Esempi e dettagli
Modello cloud

Distribuisce un modello di cloud di automazione da GitHub, esegue il provisioning di un'applicazione e automatizza l'integrazione e la consegna continue (CICD) di tale modello di cloud per la distribuzione.

Vedere Come automatizzare il rilascio di un'applicazione da distribuire da un modello cloud YAML in Code Stream.

I parametri del modello cloud vengono visualizzati dopo aver prima selezionato Crea o Aggiorna e quindi aver selezionato Modello cloud e Versione. È possibile aggiungere questi elementi, che ospitano associazioni di variabili, alle aree di testo di input nell'attività del modello di cloud:

  • Intero
  • Stringa di enumerazione
  • Booleano
  • Variabile array

Quando si utilizza l'associazione di variabili nell'input, tenere conto di tali eccezioni. Per le enumerazioni, è necessario selezionare un valore di enumerazione da un set fisso. Per i valori booleani, è necessario immettere il valore nell'area di testo di input.

Il parametro del modello di cloud viene visualizzato nell'attività del modello di cloud quando un modello di cloud in Cloud Assembly include variabili di input. Ad esempio, se un modello di cloud dispone di un tipo di input di Integer, è possibile immettere il numero intero direttamente o come variabile utilizzando l'associazione di variabili.

CI

L'attività CI consente l'integrazione continua del codice nella pipeline estraendo un'immagine della build di Docker da un endpoint del registro e distribuendo il codice in un cluster Kubernetes.

L'attività CI mostra 100 righe del registro come output e 500 righe quando si scaricano i registri.

Le attività CI richiedono porte non attive da 32768 a 61000.

Vedere Pianificazione di una creazione nativa di integrazione continua e consegna continua in Code Stream prima di utilizzare il modello di pipeline smart.

Personalizzato

L'attività personalizzata integra Code Stream con i propri strumenti di creazione, test e distribuzione.

Vedere Integrazione degli strumenti di creazione, test e distribuzione con Code Stream.

Kubernetes

Automatizza la distribuzione delle applicazioni software nei cluster Kubernetes.

Vedere Come automatizzare il rilascio di un'applicazione in Code Stream in un cluster Kubernetes.

Pipeline

Nidifica una pipeline in una pipeline primaria. Quando una pipeline è nidificata, si comporta come un'attività nella pipeline primaria.

Nella scheda Attività della pipeline primaria, è possibile passare facilmente alla pipeline nidificata facendo clic sul relativo collegamento. La pipeline nidificata viene aperta in una nuova scheda del browser.

Per trovare le pipeline nidificate in Esecuzioni, immettere nested nell'area di ricerca.

Tabella 3. Integrare applicazioni di sviluppo, test e distribuzione
Tipo di attività... Che cosa fa... Esempi e dettagli...
Bamboo

Interagisce con un server di integrazione continua (CI) di Bamboo che crea, testa e integra in modo continuativo il software come preparazione alla distribuzione e attiva le build di codice quando gli sviluppatori confermano le modifiche. Espone le posizioni degli artefatti che la creazione di Bamboo produce in modo che l'attività possa generare parametri utilizzabili da altre attività per la creazione e la distribuzione.

Connettersi a un endpoint del server Bamboo e avviare un piano di creazione Bamboo dalla pipeline.

Jenkins

Attiva i processi Jenkins, che generano e testano il codice sorgente, esegue test case e può utilizzare script personalizzati.

Vedere Come integrare Code Stream con Jenkins.

TFS

Consente di connettere la pipeline a Team Foundation Server per gestire e richiamare i progetti di creazione, inclusi i processi configurati che creano e testano il codice.

Per le versioni di Team Foundation Server supportate da Code Stream, vedere Che cosa sono gli endpoint in Code Stream.

vRO

Estende la funzionalità di Code Stream mediante l'esecuzione di workflow predefiniti o personalizzati in vRealize Orchestrator.

Code Stream supporta l'autenticazione di base e l'autenticazione basata su token per vRealize Orchestrator. Code Stream supporta il token dell'API per autenticare e convalidare il cluster vRealize Orchestrator. Con l'autenticazione basata su token, Code Stream supporta endpoint vRealize Orchestrator che usano un Proxy di estendibilità cloud. Di conseguenza, in Code Stream è possibile attivare workflow con un endpoint vRealize Orchestrator che usa il proxy di estendibilità cloud.

Vedere Come integrare Code Stream con vRealize Orchestrator.

Tabella 4. Integrare altre applicazioni tramite un'API
Tipo di attività... Che cosa fa... Esempi e dettagli...
REST

Integra Code Stream con altre applicazioni che utilizzano una REST API per consentire lo sviluppo e la consegna continui di applicazioni software che interagiscono tra loro.

Vedere Come utilizzare una REST API per integrare Code Stream con altre applicazioni.

Polling

Richiama una REST API e ne esegue il polling finché l'attività della pipeline non soddisfa i criteri di uscita e viene completata.

Un amministratore di Code Stream può impostare il conteggio di polling fino a un massimo di 10000. L'intervallo di polling deve essere maggiore o uguale a 60 secondi.

Quando si contrassegna la casella di controllo Continua in caso di errore, se il conteggio o l'intervallo superano questi valori, l'esecuzione dell'attività di polling continua.

POLL Iteration Count: viene visualizzato nell'esecuzione della pipeline e viene mostrato il numero di volte in cui l'attività POLL ha richiesto una risposta dall'URL. Ad esempio, se l'input POLL è 65 e il numero effettivo di esecuzioni della richiesta POLL è 4, il conteggio delle iterazioni nell'output di esecuzione della pipeline mostra 4 (su 65).

Vedere Come utilizzare una REST API per integrare Code Stream con altre applicazioni.

Tabella 5. Eseguire script remoti e definiti dall'utente
Tipo di attività Funzioni Esempi e dettagli
PowerShell

Con l'attività PowerShell, Code Stream può eseguire comandi di script su un host remoto. Ad esempio, uno script può automatizzare le attività di test ed eseguire i tipi di comandi amministrativi.

Lo script può essere remoto o definito dall'utente. Può connettersi tramite HTTP o HTTPS e può utilizzare TLS.

Nell'host Windows deve essere configurato il servizio winrm, e in winrm devono essere configurati MaxShellsPerUser e MaxMemoryPerShellMB.

Per eseguire un'attività di PowerShell, è necessario disporre di una sessione attiva nell'host Windows remoto.

Lunghezza della riga di comando di PowerShell

Se si immette un comando PowerShell base64, tenere presente che è necessario calcolare la lunghezza complessiva del comando.

La pipeline di Code Stream codifica ed esegue il wrapping di un comando PowerShell base64 in un altro comando, incrementando la lunghezza complessiva del comando.

La lunghezza massima consentita per un comando di winrm PowerShell è 8192 byte. Il limite di lunghezza del comando è inferiore per l'attività PowerShell quando viene codificata e ne viene eseguito il wrapping. Di conseguenza, è necessario calcolare la lunghezza del comando prima di immettere il comando PowerShell.

Il limite di lunghezza del comando per l'attività PowerShell di Code Stream dipende dalla lunghezza codificata in base64 del comando originale. La lunghezza del comando viene calcolata come segue.

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

La lunghezza del comando per Code Stream deve essere inferiore al limite massimo di 8192.

Quando si configurano MaxShellsPerUser e MaxMemoryPerShellMB:

  • Il valore accettabile per MaxShellsPerUser è 500 per 50 pipeline simultanee, con 5 attività PowerShell per ogni pipeline. Per impostare il valore, eseguire: winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • Il valore della memoria accettabile per MaxMemoryPerShellMB è 2048. Per impostare il valore, eseguire: winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

Lo script scrive l'output in un file di risposta, che può essere utilizzato da un'altra pipeline.

SSH

L'attività SSH consente all'attività di script della shell Bash di eseguire comandi di script su un host remoto. Ad esempio, uno script può automatizzare le attività di test ed eseguire i tipi di comandi amministrativi.

Lo script può essere remoto o definito dall'utente. Può connettersi tramite HTTP o HTTPS e richiede una chiave privata o una password.

Il servizio SSH deve essere configurato sull'host Linux e la configurazione SSHD di MaxSessions deve essere impostata su 50.

Se si eseguono molte attività SSH contemporaneamente, aumentare MaxSessions e MaxOpenSessions nell'host SSH. Non utilizzare l'istanza di vRealize Automation come host SSH se è necessario modificare le impostazioni di configurazione di MaxSessions e MaxOpenSessions.

L'attività SSH non supporta le chiavi private di tipo OpenSSH. Generare la coppia di chiavi pubblica/privata utilizzando uno dei metodi seguenti:
  • In una macchina Windows, utilizzare PuTTYgen per generare la coppia di chiavi.
  • In una macchina Mac o Linux, utilizzare ssh -V per verificare che la versione di SSH sia precedente alla 7.8, quindi utilizzare ssh -keygen per generare la coppia di chiavi in una finestra del terminale.
Nota: Verificare che la chiave generata non venga visualizzata con BEGIN OPENSSH PRIVATE KEY.
Se la chiave pubblica generata è una chiave autorizzata nella macchina remota, fare riferimento a uno degli articoli seguenti per modificare il formato privato OpenSSH:

Quando si configura l'attività SSH, la chiave privata deve essere immessa in testo normale. Il salvataggio della chiave come variabile o input modifica il formato della chiave e l'attività della pipeline non verrà eseguita correttamente.

Lo script può essere remoto o definito dall'utente. Ad esempio, uno script può essere simile al seguente:

message="Hello World" echo $message

Lo script scrive l'output in un file di risposta, che può essere utilizzato da un'altra pipeline.