Como desarrollador, necesita una canalización que recupere una plantilla de nube de automatización desde una instancia de GitHub local cada vez que confirme un cambio. La canalización es necesaria para implementar una aplicación de WordPress para Amazon Web Services (AWS) EC2 o un centro de datos. Code Stream llama a la plantilla de nube desde la canalización y automatiza la integración continua y distribución continua (Continuous Integration and Continuous Delivery, CICD) de esa plantilla de nube para implementar la aplicación.

Si desea crear y activar la canalización, necesitará una plantilla de nube de VMware.

Para la opción Origen de plantilla de nube en la tarea de la plantilla de nube de Code Stream, puede seleccionar cualquiera de las siguientes opciones:

  • Plantilla de Cloud Assembly como el control de origen. En este caso, no necesita un repositorio de GitLab o GitHub.
  • Control de origen si utiliza GitLab o GitHub para el control de origen. En este caso, debe tener un webhook de Git y activar la canalización a través del webhook.

Si tiene una plantilla de nube de YAML en su repositorio de GitHub y desea utilizar esa plantilla en la canalización, debe hacer lo siguiente:

  1. En Cloud Assembly, inserte la plantilla de nube en el repositorio de GitHub.
  2. En Code Stream, cree un endpoint de Git. A continuación, cree un webhook de Git que use el endpoint de Git y la canalización.
  3. Para activar la canalización, actualice cualquier archivo del repositorio de GitHub y confirme el cambio.

Si no tiene una plantilla de nube de YAML en el repositorio de GitHub y desea utilizar una plantilla de nube del control de origen, utilice este procedimiento para obtener información sobre cómo hacerlo. Aprenderá a crear una plantilla de nube para una aplicación de WordPress y a activarla desde un repositorio de GitHub local. Siempre que se realiza un cambio en la plantilla de nube de YAML, la canalización se activa y automatiza la versión de la aplicación.

  • En Cloud Assembly, debe agregar una cuenta de nube, una zona de nube y crear la plantilla de nube.
  • En Code Stream, debe agregar un endpoint para el repositorio de GitHub local que aloja la plantilla de nube. A continuación, debe agregar la plantilla de nube a la canalización.

Este ejemplo de caso práctico muestra cómo utilizar una plantilla de nube desde un repositorio de GitHub local.

El flujo de trabajo le ayuda a desplazarse por el proceso que automatiza el lanzamiento de una aplicación que se implementa desde una plantilla de nube de YAML.

Requisitos previos

  • Agregue una cuenta de nube y una zona de nube en la infraestructura de vRealize Automation Cloud Assembly. Consulte la documentación de vRealize Automation Cloud Assembly.
  • Para crear la plantilla de nube con el procedimiento que se explica a continuación, copie el código YAML de WordPress en el portapapeles. En la documentación de vRealize Automation Cloud Assembly, consulte el código YAML de la plantilla de nube en el caso práctico de WordPress.
  • Agregue el código de YAML de la aplicación de WordPress a su instancia de GitHub.
  • Agregue un webhook para el activador de Git de manera que la canalización pueda extraer el código de YAML cada vez que confirme cambios en él. En Code Stream, haga clic en Activadores > Git > Webhooks para Git.
  • Para trabajar con una tarea de plantilla de nube, debe tener cualquiera de las funciones de Cloud Assembly.

Procedimiento

  1. En Cloud Assembly, siga los siguientes pasos.
    1. Haga clic en VMware Cloud Templates y, a continuación, cree una plantilla de nube y una implementación para la aplicación de WordPress.
    2. Pegue en la plantilla de nube el código YAML de WordPress que copió en el portapapeles e impleméntelo.
      Mediante el código YAML, la plantilla de nube crea el nivel de base de datos, el nivel web y la red en la implementación.
  2. En Code Stream, cree endpoints.
    1. Cree un endpoint de Git para el repositorio de GitHub local en el que resida el archivo de YAML.
    2. Agregue un endpoint de correo electrónico para poder notificar a los usuarios sobre el estado de la canalización cuando se ejecuta.
      Cuando agregue un endpoint de correo electrónico, establezca el método de cifrado y el protocolo saliente.
  3. Cree una canalización y agregue notificaciones para informar de si la canalización se ejecutó correctamente o con errores.
    Cuando agregue una notificación de correo electrónico, seleccione uno de los estados de la canalización, además del servidor de correo electrónico y los destinatarios.
  4. Agregue una etapa para el desarrollo y una tarea de plantilla de nube.
    1. Agregue una tarea de plantilla de nube que implemente la máquina y configúrela para que use el YAML de la plantilla de nube para la aplicación de WordPress.
      resources:
        DBTier:    
          type: Cloud.Machine    
          properties:      
              name: mysql      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  -   tag: zone:dev
        WebTier:
          type: Cloud.Machine    
          properties:     
              name: wordpress      
              image: 'ubuntu-16'      
              flavor: 'small'      
              constraints:        
                  - tag: zone:dev
       WP-Network-Private:
          type: Cloud.Network
          properties:
              name: WP-Network-Private
              networkType: existing
              constraints:
                  - tag: 'type:isolated-net'
                  - tag: 'zone:dev'
    2. Agregue una tarea de plantilla de nube que destruya la máquina para liberar recursos.
  5. Agregue una etapa para la producción e incluya tareas de autorización e implementación.
    1. Agregue una tarea de operación de usuario para solicitar autorización para transferir la aplicación de WordPress a producción.
    2. Agregue una tarea de plantilla de nube para implementar la máquina y configúrela con el YAML de la plantilla de nube para la aplicación de WordPress.
      Al seleccionar Crear, el nombre de la implementación debe ser único. Si deja el nombre en blanco, Code Stream le asigna un nombre aleatorio único.
      Esto es lo que debe saber si selecciona Reversión en su propio caso práctico: si escoge la acción Reversión e introduce un valor para Versión de reversión, la versión debe tener el formato n-X. Por ejemplo, n-1, n-2, n-3, etc. Si crea y actualiza la implementación en cualquier ubicación que no sea Code Stream, se permitirá la reversión.
      Al iniciar sesión en Code Stream, obtiene un token de usuario, que es válido durante 30 minutos. En canalizaciones de larga ejecución, cuando la tarea anterior a la de la plantilla de nube tarda 30 minutos o más en ejecutarse, el token de usuario caduca. Como resultado, se produce un error en la tarea de plantilla de nube.
      Para asegurarse de que la canalización se pueda ejecutar durante más de 30 minutos, puede introducir un token de API opcional. Cuando Code Stream invoca a la plantilla de nube, el token de API persiste y la tarea de plantilla de nube sigue usando el token de API.
      Cuando se utiliza el token de API como una variable, está cifrado. De lo contrario, se utilizará como texto sin formato.
      La tarea de plantilla de nube puede utilizar una plantilla de nube de VMware en Cloud Assembly o extraer una del control de origen en un repositorio de GitLab o de GitHub.
  6. Ejecute la canalización.

    Para comprobar que cada tarea se haya completado correctamente, haga clic en la tarea en la ejecución y examine el estado en los detalles de la implementación para ver información detallada sobre los recursos.

  7. En GitHub, modifique el tipo de la instancia del servidor de WordPress de small a medium.
    Cuando se confirman cambios, la canalización se activa. Extrae el código actualizado del repositorio de GitHub y compila la aplicación.
    WebTier:
        type: Cloud.Machine    
        properties:     
            name: wordpress      
            image: 'ubuntu-16'      
            flavor: 'medium'      
            constraints:        
                - tag: zone:dev
  8. Vuelva a ejecutar la canalización y compruebe que finalizó correctamente y que cambió el tipo de la instancia de WordPress de pequeña a mediana.

Resultados

Enhorabuena. Se automatizó la publicación de la aplicación implementada a partir de una plantilla de nube de YAML.

Qué hacer a continuación

Para obtener más información sobre cómo puede usar Code Stream, consulte Tutoriales para usar Code Stream.

Para obtener más referencias, consulte Más recursos para desarrolladores y administradores de Code Stream.