Compartir a través de


Tutorial: Integración continua de plantillas de ARM con Azure Pipelines

En el tutorial anterior, implementará una plantilla vinculada. En este tutorial, aprenderá a usar Azure Pipelines para compilar e implementar continuamente proyectos de plantilla de Azure Resource Manager (plantilla de ARM).

Azure DevOps proporciona servicios de desarrollador para equipos de soporte para planificar el trabajo, colaborar en el desarrollo de código y crear e implementar aplicaciones. Los desarrolladores pueden trabajar en la nube mediante Azure DevOps Services. Azure DevOps proporciona un conjunto integrado de características a las que puede acceder a través del explorador web o el cliente IDE. Azure Pipelines es una de estas características. Azure Pipelines es un servicio de integración continua (CI) y entrega continua (CD) completo. Funciona con su proveedor de Git preferido y puede implementar en la mayoría de los principales servicios en la nube. Después, puede automatizar la compilación, las pruebas y la implementación del código en Microsoft Azure, Google Cloud Platform o Amazon Web Services.

Nota:

Elija un nombre de proyecto. Al seguir el tutorial, reemplace las instancias de ARMPipelineProj por el nombre del proyecto. Este nombre de proyecto se usa para generar nombres de recursos. Uno de los recursos es una cuenta de almacenamiento. Los nombres de cuentas de almacenamiento deben tener entre 3 y 24 caracteres, y usar solo números y letras minúsculas. El nombre debe ser único. En la plantilla, el nombre de la cuenta de almacenamiento es el nombre del proyecto con el almacén anexado y el nombre del proyecto debe tener entre 3 y 11 caracteres. Por lo tanto, el nombre del proyecto debe cumplir los requisitos de nombre de la cuenta de almacenamiento y tiene menos de 11 caracteres.

En este tutorial se describen las tareas siguientes:

  • Preparación de un repositorio de GitHub
  • Crear un proyecto de Azure DevOps.
  • Creación de una canalización de Azure
  • Comprobación de la implementación de la canalización
  • Actualización de la plantilla y reimplementación
  • Limpieza de recursos

Si no tiene una suscripción de Azure, cree una cuenta gratuita antes de empezar.

Prerrequisitos

Para completar este artículo, necesitará lo siguiente:

Preparación de un repositorio de GitHub

GitHub se usa para almacenar el código fuente del proyecto, incluidas las plantillas de Resource Manager. Para ver otros repositorios compatibles, consulte repositorios compatibles con Azure DevOps.

Crear un repositorio de GitHub

Si no tiene una cuenta de GitHub, consulte Requisitos previos.

  1. Inicie sesión en GitHub.

  2. Seleccione la imagen de la cuenta en la esquina superior derecha y, a continuación, seleccione Los repositorios.

    Captura de pantalla de la creación de un repositorio de GitHub para Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Seleccione Nuevo, un botón verde.

  4. En Nombre del repositorio, escriba un nombre de repositorio. Por ejemplo, ARMPipeline-repo. Recuerde reemplazar cualquiera de ARMPipeline por el nombre del proyecto. Puede seleccionar Público o privado para seguir este tutorial. Y, a continuación, seleccione Crear repositorio.

  5. Anote la dirección URL. La dirección URL del repositorio es el formato siguiente: https://github.com/[YourAccountName]/[YourRepositoryName].

Este repositorio se conoce como repositorio remoto. Cada uno de los desarrolladores del mismo proyecto puede clonar su propio repositorio local y combinar los cambios en el repositorio remoto.

Clonación del repositorio remoto

  1. Abra Git Shell o Git Bash. Consulte Requisitos previos.

  2. Compruebe que la carpeta actual es GitHub.

  3. Ejecute el siguiente comando:

    git clone https://github.com/[YourAccountName]/[YourGitHubRepositoryName]
    cd [YourGitHubRepositoryName]
    mkdir create_web_app
    cd create_web_app
    pwd
    

    Reemplace por [YourAccountName] el nombre de la cuenta de GitHub y reemplace por [YourGitHubRepositoryName] el nombre del repositorio que creó en el procedimiento anterior.

La carpeta create_web_app es la carpeta donde se almacena la plantilla. El pwd comando muestra la ruta de acceso de la carpeta. La ruta de acceso es donde guardas la plantilla en el siguiente procedimiento.

Descarga de una plantilla de inicio rápido

En lugar de crear las plantillas, puede descargarlas y guardarlas en la carpeta create_web_app .

Tanto el nombre de carpeta como los nombres de archivo se usan tal como están en el flujo de trabajo. Si cambias estos nombres, debes actualizar los nombres usados en la canalización.

Inserción de la plantilla en el repositorio remoto

El azuredeploy.json se ha agregado al repositorio local. A continuación, cargue la plantilla en el repositorio remoto.

  1. Abra Git Shell o Git Bash, si no está abierto.

  2. Cambie el directorio a la carpeta create_web_app del repositorio local.

  3. Compruebe que el archivo azuredeploy.json está en la carpeta .

  4. Ejecute el siguiente comando:

    git add .
    git commit -m "Add web app templates."
    git push origin main
    

    Puedes recibir una advertencia sobre LF. Puede omitir la advertencia. main es la rama principal. Normalmente, se crea una rama para cada actualización. Para simplificar el tutorial, use directamente la rama principal.

  5. Vaya al repositorio de GitHub desde un explorador. La dirección URL es https://github.com/[YourAccountName]/[YourGitHubRepository]. Verá la carpeta create_web_app y los dos archivos dentro de la carpeta.

  6. Seleccione azuredeploy.json para abrir la plantilla.

  7. Seleccione el botón Sin formato. La dirección URL comienza por https://raw.githubusercontent.com.

  8. Realice una copia de la dirección URL. Debe proporcionar este valor al configurar la canalización más adelante en el tutorial.

Hasta ahora, ha creado un repositorio de GitHub y ha cargado las plantillas en el repositorio.

Crear un proyecto de DevOps

Se necesita una organización de DevOps para poder continuar con el siguiente procedimiento. Si no tiene una, consulte Requisitos previos.

  1. Inicie sesión en Azure DevOps.

  2. Seleccione una organización de DevOps de la izquierda y, a continuación, seleccione Nuevo proyecto. Si no tiene ningún proyecto, la página crear proyecto se abre automáticamente.

  3. Escriba los siguientes valores:

    Captura de pantalla de la creación de un proyecto de Azure DevOps para Azure Resource Manager Azure DevOps Azure Pipelines.

    • Nombre del proyecto: escriba un nombre de proyecto. Puede usar el nombre del proyecto que ha seleccionado al principio del tutorial.
    • Visibilidad: seleccione Privado.

    Use el valor predeterminado para las otras propiedades.

  4. Seleccione Crear.

Cree una conexión de servicio que se use para implementar proyectos en Azure.

  1. Seleccione Configuración del proyecto en la parte inferior del menú izquierdo.

  2. Seleccione Conexiones de servicio en Canalizaciones.

  3. Seleccione Crear conexión de servicio, Azure Resource Manager y, después, Siguiente.

  4. Seleccione Entidad de servicio (automática) y, después, Siguiente.

  5. Escriba los siguientes valores:

    • Nivel de ámbito: seleccione Suscripción.
    • Suscripción: seleccione la suscripción.
    • Grupo de recursos: déjelo en blanco.
    • Nombre de conexión: escriba un nombre de conexión. Por ejemplo, ARMPipeline-conn. Anota este nombre, necesitarás el nombre al crear la canalización.
    • Conceda permiso de acceso a todas las canalizaciones. (seleccionado)
  6. Seleccione Guardar.

Creación de una canalización

Hasta ahora, ha completado las siguientes tareas. Si omite las secciones anteriores porque está familiarizado con GitHub y DevOps, debe completar las tareas antes de continuar.

  • Cree un repositorio de GitHub y guarde las plantillas en la carpeta create_web_app del repositorio.
  • Cree un proyecto de DevOps y cree una conexión de servicio de Azure Resource Manager.

Para crear una canalización con un paso para implementar una plantilla:

  1. Seleccione Canalizaciones en el menú de la izquierda.

  2. Seleccione Crear canalización.

  3. En la pestaña Conectar , seleccione GitHub. Si se le pide, escriba las credenciales de GitHub y siga las instrucciones. Si ve la siguiente pantalla, seleccione Solo repositorios y compruebe que el repositorio está en la lista antes de seleccionar Aprobar e instalar.

    Captura de pantalla de la selección de repositorios para Azure Resource Manager Azure DevOps Azure Pipelines.

  4. En la pestaña Seleccionar , seleccione el repositorio. El nombre predeterminado es [YourAccountName]/[YourGitHubRepositoryName].

  5. En la pestaña Configurar , seleccione Canalización de inicio. Muestra el archivo de canalización azure-pipelines.yml con dos pasos de script.

  6. Elimine los dos pasos del script del archivo .yml .

  7. Lleve el cursor a la línea después de pasos:.

  8. Seleccione Mostrar asistente a la derecha de la pantalla para abrir el panel Tareas .

  9. Seleccione Implementación de plantillas de ARM.

  10. Escriba los siguientes valores:

    • deploymentScope: seleccione Grupo de recursos. Para más información sobre los ámbitos, consulte Ámbitos de implementación.
    • Conexión de Azure Resource Manager: seleccione el nombre de conexión de servicio que creó anteriormente.
    • Suscripción: especifique el identificador de suscripción de destino.
    • Acción: seleccione la acción Crear o actualizar grupo de recursos realiza dos acciones: 1. cree un grupo de recursos si se proporciona un nuevo nombre de grupo de recursos; 2. implemente la plantilla especificada.
    • Grupo de recursos: escriba un nuevo nombre de grupo de recursos. Por ejemplo, ARMPipeline-rg.
    • Ubicación: seleccione una ubicación para el grupo de recursos, por ejemplo, Centro de EE. UU.
    • Ubicación de la plantilla: seleccione la dirección URL del archivo, lo que significa que la tarea busca el archivo de plantilla mediante la dirección URL. Dado que relativePath se usa en la plantilla principal y relativePath solo se admite en implementaciones basadas en URI, debe usar la dirección URL aquí.
    • Vínculo de plantilla: escriba la dirección URL que obtuvo al final de la sección Preparación de un repositorio de GitHub . Comienza con https://raw.githubusercontent.com .
    • Vínculo de parámetros de plantilla: deje este campo en blanco. Deberá especificar los valores de parámetro en Reemplazar parámetros de plantilla.
    • Invalidar parámetros de plantilla: escriba -projectName [EnterAProjectName].
    • Modo de implementación: seleccione Incremental.
    • Nombre de implementación: escriba DeployPipelineTemplate. Seleccione Avanzado antes de ver nombre de implementación.

    Captura de pantalla de la página de implementación de plantillas de ARM con los valores necesarios especificados para Azure DevOps Azure Pipelines.

  11. Seleccione Agregar.

    Para más información sobre la tarea, consulte Tarea de implementación del grupo de recursos de Azure y tarea de implementación de plantillas de Azure Resource Manager.

    El archivo .yml será similar al siguiente:

    Captura de pantalla de la página Revisar con la nueva canalización titulada Revisar su canalización YAML para Azure DevOps Azure Pipelines.

  12. Seleccione Guardar y ejecutar.

  13. En el panel Guardar y ejecutar , seleccione Guardar y ejecutar de nuevo. Se guarda una copia del archivo YAML en el repositorio conectado. Para ver el archivo YAML, vaya al repositorio.

  14. Verifica que la canalización se haya ejecutado correctamente.

    Captura de pantalla del archivo YAML de Azure Resource Manager Azure DevOps Azure Pipelines.

Comprobación de la implementación

  1. Inicie sesión en Azure Portal.
  2. Abra el grupo de recursos. El nombre es lo que especificaste en el archivo YAML de la canalización. Verá una cuenta de almacenamiento creada. El nombre de la cuenta de almacenamiento comienza con store.
  3. Seleccione el nombre de la cuenta de almacenamiento para abrirlo.
  4. Seleccione Propiedades. Observe que la replicación es almacenamiento con redundancia local (LRS).

Actualización y reimplementación

Al actualizar la plantilla e insertar los cambios en el repositorio remoto, la canalización actualiza automáticamente los recursos, la cuenta de almacenamiento en este caso.

  1. Abra linkedStorageAccount.json desde el repositorio local en Visual Studio Code o en cualquier editor de texto.

  2. Actualiza defaultValue de storageAccountType a Standard_GRS. Vea la captura de pantalla siguiente:

    Captura de pantalla de la actualización del archivo YAML para Azure Resource Manager Azure DevOps Azure Pipelines.

  3. Guarde los cambios.

  4. Inserte los cambios en el repositorio remoto mediante la ejecución de los siguientes comandos desde Git Bash/Shell.

    git pull origin main
    git add .
    git commit -m "Update the storage account type."
    git push origin main
    

    El primer comando (pull) sincroniza el repositorio local con el repositorio remoto. El archivo YAML de canalización solo se agregó al repositorio remoto. Al ejecutar el pull comando se descarga una copia del archivo YAML en la rama local.

    El cuarto comando (push) carga el archivo revisadolinkedStorageAccount.json en el repositorio remoto. Con la actualización de la rama principal del repositorio remoto, la canalización se activa de nuevo.

Para comprobar los cambios, puede comprobar la propiedad Replication de la cuenta de almacenamiento. Consulte Comprobación de la implementación.

Limpieza de recursos

Cuando los recursos de Azure ya no sean necesarios, limpie los recursos que implementó eliminando el grupo de recursos.

  1. En Azure Portal, seleccione Grupo de recursos en el menú de la izquierda.
  2. Escriba el nombre del grupo de recursos en el campo Filtrar por nombre .
  3. Seleccione el nombre del grupo de recursos.
  4. Seleccione Eliminar grupo de recursos en el menú superior.

También puede eliminar el repositorio de GitHub y el proyecto de Azure DevOps.

Pasos siguientes

Enhorabuena, ha terminado este tutorial de implementación de plantillas de Resource Manager. Háganos saber si tiene comentarios y sugerencias en la sección de comentarios. Gracias. Estás listo para pasar a conceptos más avanzados sobre las plantillas. En el siguiente tutorial se detalla más detalladamente el uso de la documentación de referencia de plantillas para ayudar a definir los recursos que se van a implementar.