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.

Para el valor de Origen de plantilla de nube en la tarea de la plantilla de nube, 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 VMware 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 VMware 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.

Flujo de trabajo para automatizar la publicación de una aplicación implementada a partir de una plantilla de nube de YAML.

Requisitos previos

Procedimiento

  1. En VMware Cloud Assembly, siga los siguientes pasos.
    1. Haga clic en Plantillas de nube 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.
      Ejemplo de plantilla de nube de WordPress.
  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.
      Crear un endpoint de Git para un repositorio de GitHub local.
    2. Agregue un endpoint de correo electrónico para notificar a los usuarios sobre el estado de la canalización cuando se ejecuta.
      Agregar un endpoint de correo electrónico.
  3. Cree una canalización y agregue notificaciones para informar de si la canalización se ejecutó correctamente o con errores.
    Notificaciones de correo electrónico sobre la canalización y la selección de un servidor de correo electrónico.
  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 a fin de utilizar el YAML de la plantilla 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 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 asignará 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, no 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.
      Agregar una tarea de plantilla de nube para la implementación de la aplicación de WordPress.
  6. Ejecute la canalización.

    Para comprobar que cada tarea se haya completado correctamente, haga clic en la tarea en la ejecución y compruebe 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 VMware Code Stream.

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