Al configurar la canalización, se agregan tipos específicos de tareas que la canalización ejecuta para las acciones que necesita. Cada tipo de tarea se integra con otra aplicación y habilita la canalización a medida que compila, prueba y distribuye las aplicaciones.

Para ejecutar la canalización, ya sea que deba extraer artefactos de un repositorio para la implementación, ejecutar un script remoto o solicitar la aprobación de un miembro del equipo en una operación de usuario, Code Stream tiene el tipo de tarea adecuado para usted.

Code Stream admite la cancelación de una ejecución de canalización en varios tipos de tareas. Al hacer clic en Cancelar en la ejecución de una canalización, la tarea, la etapa o toda la canalización entran en estado de cancelación y se cancela la ejecución de la canalización.

Code Stream permite cancelar la ejecución de la canalización en una tarea, una etapa o en toda la canalización cuando se utilizan estas tareas:
  • Jenkins
  • SSH
  • PowerShell
  • Operación de usuario
  • Canalización
  • Plantilla de nube
  • vRO
  • Sondeo

Code Stream no propaga el comportamiento de cancelación a sistemas de terceros para estas tareas: integración continua, integración personalizada o Kubernetes. Code Stream marca la tarea como cancelada e inmediatamente deja de recuperar el estado sin esperar a que finalice la tarea. La tarea puede completarse o generar un error en el sistema de terceros, pero deja de ejecutarse de inmediato en Code Stream al hacer clic en Cancelar.

Antes de utilizar una tarea en la canalización, compruebe que el endpoint correspondiente esté disponible.

Tabla 1. Obtención de una aprobación o establecimiento de un punto de decisión
Tipo de tarea Qué función tiene Ejemplos y detalles
Operación de usuario

Una tarea de Operación de usuario habilita una aprobación requerida que controla cuándo se ejecuta una canalización y cuándo debe detenerse para su aprobación.

Consulte Cómo ejecutar una canalización y ver los resultados. y Cómo se administran las autorizaciones y el acceso de los usuarios en Code Stream.

Condición

Agrega un punto de decisión, que determina si la canalización debe continuar ejecutándose o detenerse en función de las expresiones de condición. Cuando la condición es verdadera, la canalización ejecuta las tareas sucesivas. Cuando el valor es falso, la canalización se detiene.

Consulte Cómo utilizar enlaces de variables en una tarea de condición para ejecutar o detener una canalización en Code Stream.

Tabla 2. Automatización de la implementación y la integración continua
Tipo de tarea Qué función tiene Ejemplos y detalles
Plantilla de nube

Implementa una plantilla de nube de automatización de GitHub y aprovisiona una aplicación, y automatiza la integración continua y entrega continua (Continuous Integration and Continuous Delivery, CICD) de esa plantilla de nube para la implementación.

Consulte Cómo automatizar la publicación de una aplicación implementada a partir de una plantilla de nube de YAML en Code Stream.

Los parámetros de la plantilla de nube aparecen después de que selecciona Crear o Actualizar y, a continuación, selecciona Plantilla de nube y Versión. Puede agregar estos elementos, que admiten enlaces de variables, a las áreas de texto de entrada de la tarea de plantilla de nube:

  • Entero
  • Cadena de enumeración
  • Booleano
  • Variable de matriz

Cuando utilice el enlace de variables en la entrada, tenga en cuenta estas excepciones. Para enumeraciones, debe seleccionar un valor de enumeración de un conjunto fijo. Para valores booleanos, debe introducir el valor en el área de texto de entrada.

El parámetro de plantilla de nube aparece en la tarea de plantilla de nube cuando una plantilla de nube de Cloud Assembly contiene variables de entrada. Por ejemplo, si una plantilla de nube tiene un tipo de entrada Integer, puede introducir el entero directamente o como una variable mediante el enlace de variables.

CI

La tarea de CI permite la integración continua del código en la canalización mediante la extracción de una imagen de compilación de Docker de un endpoint de registro y su implementación en un clúster de Kubernetes.

La tarea de CI muestra 100 líneas del registro como salida y 500 líneas cuando se descargan los registros.

Las tareas de CI requieren puertos efímeros del 32768 al 61000.

Consulte Planificar una compilación nativa de CICD en Code Stream antes de usar la plantilla de canalización inteligente.

Personalizada

La tarea personalizada integra Code Stream con sus propias herramientas de compilación, prueba e implementación.

Consulte Cómo se integran las herramientas personalizadas de compilación, pruebas e implementación con Code Stream.

Kubernetes

Controle la implementación de las aplicaciones de software en los clústeres de Kubernetes.

Consulte Cómo automatizar el lanzamiento de una aplicación en Code Stream en un clúster de Kubernetes.

Canalización

Anida una canalización en una canalización principal. Cuando se anida una canalización, esta funciona como una tarea en la canalización principal.

En la pestaña Tarea de la canalización principal, puede desplazarse fácilmente hasta la canalización anidada si hace clic en el vínculo que dirige a ella. La canalización anidada se abrirá en una nueva pestaña del explorador.

Para buscar canalizaciones anidadas en Ejecuciones, introduzca nested en el área de búsqueda.

Tabla 3. Integración de aplicaciones de desarrollo, prueba e implementación
Tipo de tarea... Lo que hace... Ejemplos y detalles...
Bamboo

Interactúa con un servidor de integración continua (continuous integration, CI) de Bamboo que crea, prueba e integra continuamente el software en preparación para la implementación, y activa las compilaciones de código cuando los desarrolladores confirman cambios. Expone las ubicaciones de los artefactos que genera la compilación de Bamboo para que la tarea pueda generar los parámetros de otras tareas que se utilizarán para la compilación y la implementación.

Conéctese a un endpoint de servidor de Bamboo e inicie un plan de compilación de Bamboo desde la canalización.

Jenkins

Activa los trabajos de Jenkins que compilan y prueban el código fuente, ejecuta casos de prueba y puede utilizar scripts personalizados.

Consulte Cómo se integra Code Stream con Jenkins.

TFS

Permite conectar la canalización a Team Foundation Server para administrar e invocar proyectos de compilación, incluidos los trabajos configurados que compilan y prueban código.

Para conocer las versiones de Team Foundation Server compatibles con Code Stream, consulte Qué son los endpoints en Code Stream.

vRO

Amplía la capacidad de Code Stream mediante la ejecución de flujos de trabajo predefinidos o personalizados en vRealize Orchestrator.

Code Stream admite autenticación básica y basada en tokens para vRealize Orchestrator. Code Stream usa el token de la API para autenticar y validar el clúster de vRealize Orchestrator. Con la autenticación basada en tokens, Code Stream admite endpoints de vRealize Orchestrator que usan un proxy de extensibilidad de nube. Como resultado, en Code Stream se pueden activar flujos de trabajo con un endpoint de vRealize Orchestrator que utilice el proxy de extensibilidad de nube.

Consulte Cómo se integra Code Stream con vRealize Orchestrator.

Tabla 4. Integración de otras aplicaciones a través de una API
Tipo de tarea... Lo que hace... Ejemplos y detalles...
REST

Integra Code Stream con otras aplicaciones que utilizan REST API para que usted pueda desarrollar y distribuir continuamente aplicaciones de software que interactúen entre sí.

Consulte Cómo usar REST API para integrar Code Stream con otras aplicaciones.

Sondeo

Invoca una instancia de REST API y la sondea hasta que la tarea de canalización cumple con los criterios de salida y se completa.

Un administrador de Code Stream puede establecer el recuento de sondeos en un máximo de 10.000. El intervalo de sondeo debe ser mayor o igual que 60 segundos.

Cuando se marca la casilla de verificación Continuar en caso de error, si el recuento o el intervalo superan estos valores, la tarea de sondeo continúa ejecutándose.

POLL Iteration Count: aparece en la ejecución de la canalización y muestra el número de veces que la tarea POLL solicitó una respuesta de la URL. Por ejemplo, si la entrada de POLL es 65 y el número de veces real que se ejecutó la solicitud POLL es 4, el recuento de iteraciones en la salida de ejecución de la canalización mostrará 4 (de 65).

Consulte Cómo usar REST API para integrar Code Stream con otras aplicaciones.

Tabla 5. Ejecución de scripts remotos y definidos por el usuario
Tipo de tarea Qué función tiene Ejemplos y detalles
PowerShell

Con la tarea de PowerShell, Code Stream puede ejecutar comandos de script en un host remoto. Por ejemplo, un script puede automatizar las tareas de prueba y ejecutar tipos de comandos administrativos.

El script puede ser remoto o definido por el usuario. Puede conectarse a través de HTTP o HTTPS, y puede utilizar TLS.

El host de Windows debe tener configurado el servicio winrm, y winrm debe tener configurados MaxShellsPerUser y MaxMemoryPerShellMB.

Para ejecutar una tarea de PowerShell, debe tener una sesión activa en el host de Windows remoto.

Longitud de línea de comandos de PowerShell

Si introduce un comando Base64 de PowerShell, tenga en cuenta que debe calcular la longitud general del comando.

La canalización Code Stream codifica y encapsula un comando Base64 de PowerShell en otro comando, lo que aumenta la longitud general del comando.

La longitud máxima permitida para un comando winrm de PowerShell es 8192 bytes. El límite de longitud del comando es inferior para la tarea de PowerShell cuando se codifica y se encapsula. Como resultado, debe calcular la longitud del comando antes de introducir el comando de PowerShell.

El límite de longitud del comando para la tarea Code Stream de PowerShell depende de la longitud codificada de Base64 del comando original. La longitud del comando se calcula de la siguiente manera.

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

La longitud del comando para Code Stream debe ser inferior al límite máximo de 8192.

Al configurar MaxShellsPerUser y MaxMemoryPerShellMB:

  • El valor aceptable para MaxShellsPerUser es 500 para 50 canalizaciones simultáneas, con 5 tareas de PowerShell para cada canalización. Para establecer el valor, ejecute: winrm set winrm/config/winrs '@{MaxShellsPerUser="500"}'
  • El valor de memoria aceptable para MaxMemoryPerShellMB es 2048. Para establecer el valor, ejecute: winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="2048"}'

El script escribe la salida en un archivo de respuesta que puede consumir otra canalización.

SSH

La tarea de SSH permite que la de tarea de script de shell de Bash ejecute comandos de script en un host remoto. Por ejemplo, un script puede automatizar las tareas de prueba y ejecutar tipos de comandos administrativos.

El script puede ser remoto o definido por el usuario. Puede conectarse a través de HTTP o HTTPS, y requiere una clave privada o una contraseña.

Se debe configurar el servicio SSH en el host de Linux y la configuración SSHD de MaxSessions se debe establecer en 50.

Si ejecuta muchas tareas SSH al mismo tiempo, aumente MaxSessions y MaxOpenSessions en el host SSH. No utilice la instancia de vRealize Automation como host SSH si necesita modificar las opciones de configuración de MaxSessions y MaxOpenSessions.

La tarea SSH no admite claves privadas de tipo OpenSSH. Genere el par de claves pública/privada mediante uno de los siguientes métodos:
  • En una máquina Windows, utilice PuTTYgen para generar el par de claves.
  • En una máquina Mac o Linux, utilice ssh -V para comprobar que la versión de SSH sea anterior a la 7.8 y, a continuación, utilice ssh -keygen para generar el par de claves en una ventana de terminal.
Nota: Compruebe que la clave generada no muestre el mensaje BEGIN OPENSSH PRIVATE KEY.
Si la clave pública generada es una clave autorizada en la máquina remota, consulte uno de los siguientes artículos para cambiar el formato privado OpenSSH:

Al configurar la tarea de SSH, la clave privada debe introducirse en texto sin formato. Al guardar la clave como una variable o entrada, se cambia el formato de la clave y no se puede ejecutar la tarea de canalización.

El script puede ser remoto o definido por el usuario. Por ejemplo, un script puede ser similar al siguiente:

message="Hello World" echo $message

El script escribe la salida en un archivo de respuesta que puede consumir otra canalización.