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. Automation Pipelines 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 en Automation Assembler.

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

  • Automation Assembler como 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 Automation Assembler, inserte la plantilla de nube en el repositorio de GitHub.
  2. En Automation Pipelines, 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 Automation Assembler, debe agregar una cuenta de nube, una zona de nube y crear la plantilla de nube.
  • En Automation Pipelines, 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 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 Automation Pipelines, haga clic en Activadores > Git > Webhooks para Git.
  • Para trabajar con una tarea de plantilla de nube, debe tener cualquiera de las funciones de Automation Assembler.

Procedimiento

  1. En Automation Assembler, siga los siguientes pasos.
    1. Haga clic en Plantillas 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 Automation Pipelines, 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, Automation Pipelines 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 Automation Pipelines, se permitirá la reversión.
      La tarea de plantilla de nube puede utilizar una plantilla de nube de VMware en Automation Assembler 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 Automation Pipelines, consulte Tutoriales para usar Automation Pipelines.

Para obtener más información, consulte los recursos adicionales en Introducción a VMware Aria Automation.