Wanneer u uw pijplijn configureert, voegt u specifieke typen taken toe die de pijplijn uitvoert voor de acties die u nodig hebt. Elk taaktype integreert met een andere applicatie en schakelt uw pijplijn in terwijl deze uw applicaties bouwt, test en levert.

Om uw pijplijn uit te voeren, ongeacht of u artefacten uit een opslagplaats moet halen voor implementatie, een extern script moet uitvoeren of goedkeuring moet vereisen voor een gebruikersbewerking van een teamlid, heeft Code Stream het type taak voor u.

Code Stream ondersteunt het annuleren van een pijplijnuitvoering voor verschillende taaktypen. Wanneer u op Annuleren klikt bij de uitvoering van een pijplijn, krijgt de taak, fase of volledige pijplijn de annuleringsstatus en wordt de pijplijnuitvoering geannuleerd.

Met Code Stream kunt u de pijplijnuitvoering voor een taak, fase of de volledige pijplijn annuleren wanneer u deze taken gebruikt:
  • Jenkins
  • SSH
  • PowerShell
  • Gebruikersbewerking
  • Pijplijn
  • Cloudsjabloon
  • vRO
  • POLL

Code Stream geeft het annuleringsgedrag niet door aan systemen van derden voor deze taken: continue integratie, aangepaste integratie of Kubernetes. Code Stream markeert de taak als geannuleerd en stopt onmiddellijk met het ophalen van de status zonder te wachten totdat de taak is voltooid. De taak kan worden voltooid of mislukken op het systeem van derden, maar de uitvoering wordt onmiddellijk gestopt in Code Stream wanneer u op Annuleren klikt.

Voordat u een taak in uw pijplijn gebruikt, moet u controleren of het bijbehorende eindpunt beschikbaar is.

Tabel 1. Een goedkeuring verkrijgen of een beslissingspunt instellen
Type taak Wat het doet Voorbeelden en details
Gebruikersbewerking

Een taak Gebruikersbewerking schakelt een vereiste goedkeuring in die bepaalt wanneer een pijplijn wordt uitgevoerd en moet stoppen voor een goedkeuring.

Zie Hoe kan ik een pijplijn uitvoeren en de resultaten bekijken?. en Hoe beheer ik gebruikerstoegang en goedkeuringen in Code Stream?.

Voorwaarde

Voegt een beslissingspunt toe, dat bepaalt of de pijplijn nog steeds wordt uitgevoerd of stopt, op basis van voorwaarde-expressies. Wanneer de voorwaarde waar is, voert de pijplijn opeenvolgende taken uit. Indien deze onwaar is, stopt de pijplijn.

Zie Hoe gebruik ik variabelebindingen in een voorwaardetaak om een pijplijn uit te voeren of te stoppen in Code Stream?.

Tabel 2. Continue integratie en implementatie automatiseren
Type taak Wat het doet Voorbeelden en details
Cloudsjabloon

Implementeert een automatiseringscloudsjabloon van GitHub, richt een applicatie in en automatiseert de continue integratie en continue levering (CICD) van die cloudsjabloon voor uw implementatie.

Zie Hoe kan ik de release van een applicatie die ik implementeer vanuit een YAML-cloudsjabloon in Code Stream automatiseren?.

De parameters van de cloudsjabloon worden weergegeven nadat u eerst Maken of Bijwerken hebt geselecteerd en vervolgens Cloudsjabloon en Versie hebt geselecteerd. U kunt deze elementen, die variabelebindingen bevatten, toevoegen aan de invoertekstgebieden in de cloudsjabloontaak:

  • Geheel getal
  • Opsommingstekenreeks
  • Booleaans
  • Array-variabele

Wanneer u een variabelebinding gebruikt in de invoer, moet u rekening houden met deze uitzonderingen. Voor opsommingen moet u een opsommingswaarde uit een vaste reeks selecteren. Voor Boole-waarden moet u de waarde invoeren in het tekstgebied voor invoer.

De cloudsjabloonparameter wordt weergegeven in de cloudsjabloontaak wanneer een cloudsjabloon in Cloud Assembly invoervariabelen bevat. Als een cloudsjabloon bijvoorbeeld een invoertype van Integer heeft, kunt u het gehele getal rechtstreeks of als een variabele invoeren met behulp van een variabelebinding.

CI

De CI-taak zorgt voor een voortdurende integratie van uw code in uw pijplijn door een Docker-buildimage uit een registereindpunt te halen en deze te implementeren in een Kubernetes-cluster.

De CI-taak geeft 100 regels van het logboek weer als uitvoer en geeft 500 regels weer wanneer u de logboeken downloadt.

Voor de CI-taken zijn kortstondige poorten 32768 tot 61000 vereist.

Zie Een systeemeigen CICD-build plannen in Code Stream voordat u de slimme pijplijnsjabloon gebruikt.

Custom

De aangepaste taak integreert Code Stream met uw eigen tools voor het bouwen, testen en implementeren.

Zie Hoe kan ik mijn eigen tools voor bouwen, testen en implementeren integreren met Code Stream?.

Kubernetes

Automatiseer de implementatie van uw softwareapplicaties naar Kubernetes-clusters.

Zie Hoe kan ik de release van een applicatie in Code Stream op een Kubernetes-cluster automatiseren?.

Pijplijn

Nest een pijplijn in een hoofdpijplijn. Wanneer een pijplijn is genest, gedraagt deze zich als een taak in de hoofdpijplijn.

Op het tabblad Taak van de hoofdpijplijn kunt u eenvoudig naar de geneste pijplijn gaan door op de link ernaar te klikken. De geneste pijplijn wordt geopend in een nieuw tabblad van de browser.

Als u geneste pijplijnen wilt vinden in Uitvoeringen, voert u genest in het zoekveld in.

Tabel 3. Ontwikkelings-, test- en implementatieapplicaties integreren
Taaktype… Wat het doet… Voorbeelden en details…
Bamboo

Communiceert met een Bamboo-server voor continue integratie (CI), waarmee voortdurend software wordt gebouwd, getest en geïntegreerd in de voorbereiding op implementatie, en codebuilds worden geactiveerd wanneer ontwikkelaars wijzigingen doorvoeren. Het geeft de artefactlocaties weer die de Bamboo-build produceert, zodat de taak de parameters als output kan geven die andere taken moeten gebruiken voor de bouw en implementatie.

Maak verbinding met een Bamboo-server-eindpunt en start een Bamboo-bouwplan vanuit uw pijplijn.

Jenkins

Activeert Jenkins-taken die uw broncode bouwen en testen, testcases uitvoeren en custom scripts kunnen gebruiken.

Zie Hoe integreer ik Code Stream met Jenkins?.

TFS

Stelt u in staat om uw pijplijn te verbinden met de Team Foundation Server om bouwprojecten te beheren en aan te roepen, inclusief geconfigureerde taken voor het bouwen en testen van uw code.

Zie Wat zijn eindpunten in Code Stream? voor versies van Team Foundation Server die worden ondersteund door Code Stream.

vRO

Breidt de mogelijkheid van Code Stream uit door vooraf gedefinieerde of custom werkstromen in vRealize Orchestrator uit te voeren.

Code Stream ondersteunt basisverificatie en verificatie op basis van tokens voor vRealize Orchestrator. Code Stream gebruikt het API-token om het vRealize Orchestrator-cluster te verifiëren en te valideren. Met verificatie op basis van tokens ondersteunt Code Stream vRealize Orchestrator-eindpunten die een clouduitbreidbaarheidsproxy gebruiken. Als gevolg hiervan kunt u in Code Stream werkstromen activeren met een vRealize Orchestrator-eindpunt dat de clouduitbreidbaarheidsproxy gebruikt.

Zie Hoe integreer ik Code Stream met vRealize Orchestrator?.

Tabel 4. Andere applicaties integreren met behulp van een API
Taaktype… Wat het doet… Voorbeelden en details…
REST

Integreert Code Stream met andere applicaties die gebruikmaken van een REST API, zodat u voortdurend softwareapplicaties kunt ontwikkelen en leveren die met elkaar communiceren.

Zie Hoe gebruik ik een REST API om Code Stream te integreren met andere applicaties?.

Poll

Roept een REST API aan en pollt deze totdat de pijplijntaak voldoet aan de afsluitcriteria en wordt voltooid.

Een Code Stream-beheerder kan het aantal polls instellen op een maximum van 10.000. Het pollinginterval moet 60 seconden of meer zijn.

Wanneer u het selectievakje Doorgaan bij mislukt inschakelt, gaat de uitvoering van de polling door bij een overschrijding van dit aantal of interval.

POLL Iteration Count: wordt weergegeven in de pijplijnuitvoering en geeft weer hoeveel keer de POLL-taak een antwoord van de URL heeft aangevraagd. Als de POLL-invoer bijvoorbeeld 65 is en 4 het aantal keer is dat de POLL-aanvraag is uitgevoerd, wordt 4 (van de 65) weergegeven voor het aantal iteraties in de uitvoer van de pijplijnuitvoering.

Zie Hoe gebruik ik een REST API om Code Stream te integreren met andere applicaties?.

Tabel 5. Externe en door de gebruiker gedefinieerde scripts uitvoeren
Type taak Wat het doet Voorbeelden en details
PowerShell

Met de PowerShell-taak kan Code Stream scriptopdrachten uitvoeren op een externe host. Een script kan bijvoorbeeld testtaken automatiseren en beheertypen van commando’s uitvoeren.

Het script kan extern zijn of door de gebruiker worden gedefinieerd. Het kan verbinding maken via HTTP of HTTPS en kan TLS gebruiken.

Voor de Windows-host moet de service winrm zijn geconfigureerd en voor winrm moeten MaxShellsPerUser en MaxMemoryPerShellMB zijn geconfigureerd.

Om een PowerShell-taak uit te voeren, moet u een actieve sessie voor de externe Windows-host hebben.

Lengte van PowerShell-opdrachtregel

Als u een base64 PowerShell-opdracht invoert, moet u er rekening mee houden dat u de totale opdrachtlengte moet berekenen.

De Code Stream-pijplijn codeert en verpakt een base64 PowerShell-opdracht in een andere opdracht, waardoor de algemene lengte van de opdracht toeneemt.

De maximale lengte die voor de PowerShell-opdracht winrm is toegestaan, is 8192 bytes. De opdrachtlengtelimiet is lager voor de PowerShell-taak wanneer deze is gecodeerd en verpakt. Als gevolg hiervan moet u de opdrachtlengte berekenen voordat u de PowerShell-opdracht invoert.

De maximale opdrachtlengte voor de Code Stream PowerShell-taak is afhankelijk van de base64-gecodeerde lengte van de oorspronkelijke opdracht. De opdrachtlengte wordt als volgt berekend.

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

De opdrachtlengte voor Code Stream moet korter zijn dan de maximale limiet van 8192.

Wanneer u MaxShellsPerUser en MaxMemoryPerShellMB configureert:

  • De acceptabele waarde voor MaxShellsPerUser is 500 voor 50 gelijktijdige pijplijnen, met 5 PowerShell-taken voor elke pijplijn. Als u de waarde wilt instellen, voert u: winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}' uit.
  • De acceptabele geheugenwaarde voor MaxMemoryPerShellMB is 2048. Als u de waarde wilt instellen, voert u: winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}' uit.

Het script schrijft de output naar een responsbestand dat door een andere pijplijn kan worden geconsumeerd.

Secure Shell

Met de SSH-taak kan de Bash-shellscripttaak scriptopdrachten uitvoeren op een externe host. Een script kan bijvoorbeeld testtaken automatiseren en beheertypen van commando’s uitvoeren.

Het script kan extern zijn of door de gebruiker worden gedefinieerd. Het kan verbinding maken via HTTP of HTTPS en vereist een persoonlijke sleutel of wachtwoord.

De Secure Shell-service moet worden geconfigureerd op de Linux-host en de SSHD-configuratie van MaxSessions moet worden ingesteld op 50.

Als u veel SSH-taken gelijktijdig uitvoert, verhoogt u MaxSessions en MaxOpenSessions op de SSH-host. Gebruik uw vRealize Automation-instantie niet als SSH-host als u de configuratie-instellingen voor MaxSessions en MaxOpenSessions moet wijzigen.

De SSH-taak ondersteunt geen persoonlijke sleutels van het OpenSSH-type. Genereer het publieke/persoonlijke sleutelpaar met een van de volgende methoden:
  • Gebruik op een Windows-machine PuTTYgen om het sleutelpaar te genereren.
  • Gebruik op een Mac- of Linux-machine ssh -V om te controleren of de SSH-versie lager is dan 7.8 en gebruik vervolgens ssh -keygen om het sleutelpaar in een terminalvenster te genereren.
Opmerking: Controleer of de gegenereerde sleutel niet wordt weergegeven met BEGIN OPENSSH PRIVATE KEY.
Als de gegenereerde publieke sleutel een geautoriseerde sleutel is in de externe machine, raadpleegt u een van de volgende artikelen om de persoonlijke indeling voor OpenSSH te wijzigen:

Wanneer u de SSH-taak configureert, moet u de persoonlijke sleutel invoeren als tekst zonder opmaak. Als u de sleutel als variabele of invoer opslaat, wordt de sleutelindeling gewijzigd en kan de pijplijntaak niet worden uitgevoerd.

Het script kan extern zijn of door de gebruiker worden gedefinieerd. Een script kan er bijvoorbeeld zo uitzien:

message="Hello World" echo $message

Het script schrijft de output naar een responsbestand dat door een andere pijplijn kan worden geconsumeerd.