Compartir a través de


Uso de Azure SQL Database con Azure DevOps Server

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Siga los pasos de este artículo para configurar Azure DevOps Server con Azure SQL Database. Esta topología tiene algunos pasos más en comparación con el uso de un servidor SQL Server local.

Prerrequisitos

Categoría Requisitos
Versión de Azure DevOps Server Azure SQL Database solo se puede usar con Azure DevOps Server 2019 y versiones posteriores.
Entorno de instalación Azure DevOps Server instalado en una máquina virtual de Azure.
Autenticación La máquina virtual (VM) tiene habilitada la identidad administrada por el sistema, que se usa para autenticarse en la base de datos de Azure SQL.
Pertenencia a un dominio La máquina virtual está unida a un dominio, pero no a un grupo de trabajo.
Tipo de base de datos Las bases de datos de Azure SQL son bases de datos únicas. Las instancias administradas y los grupos elásticos se admiten en Azure DevOps Server 2022 y versiones posteriores.
reglas de firewall Las reglas de firewall de Azure SQL Database permiten conexiones entrantes desde la dirección IP o subred donde se hospeda Azure DevOps Server. Para ello, vaya a: Azure Portal>Azure SQL Database>Configuración>Firewalls y redes virtuales> agregar una nueva regla para permitir el acceso desde la dirección IP pública o subred de Azure DevOps Server.
herramientas - Azure SQL Database provisionado y accesible desde Azure. Registro del nombre del servidor, el nombre de la base de datos y el método de autenticación.
: Azure DevOps Server 2022 que se ejecuta en el entorno local.
: SSMS instalado en la misma máquina donde está instalado Azure DevOps Server.

Se admiten todas las SKU de uso general y Premium, así como SKU estándar S3 y versiones posteriores. Sin embargo, no se admiten las SKU básicas y las SKU estándar S2.

Las configuraciones de Azure DevOps Server que utilizan la base de datos SQL de Azure no admiten los servicios heredados de generación de informes de SQL Server Reporting Services junto con las características de informes de SQL Server Analysis Services. En su lugar, puede usar Azure DevOps Analytics para informes y análisis.

Azure SQL Database no admite procedimientos almacenados cifrados.

Configurar Azure SQL Database

  1. Configure una identidad administrada en las máquinas virtuales. En este momento solo se admiten identidades administradas por el sistema.

    Puede ejecutar la configuración mediante todos los mecanismos estándar, incluido:

  2. Para configurar una nueva instancia de Azure DevOps Server, cree dos bases de datos de Azure SQL:

    • AzureDevOps_Configuración
    • AzureDevOps_DefaultCollection
  3. Configure la autenticación de Microsoft Entra ID para su servidor de Azure SQL Database. Hazte el administrador de Microsoft Entra en el servidor. Necesita permisos de administrador en la base de datos para completar los pasos de configuración restantes. Puede cambiar este permiso más adelante.

    a) Ejecute el siguiente comando de T-SQL en la base de datos principal. Reemplace VMName por el nombre de la máquina virtual cuya identidad administrada agregue a la base de datos:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER
    ALTER ROLE [dbmanager] ADD MEMBER [VMName]
    

    b. Ejecute el siguiente comando de T-SQL en la configuración y en todas las bases de datos de recopilación:

    CREATE USER [VMName] FROM EXTERNAL PROVIDER  
    ALTER ROLE [db_owner] ADD MEMBER [VMName]  
    ALTER USER [VMName] WITH DEFAULT_SCHEMA=dbo
    

    La base de datos ahora permite que la máquina virtual se comunique a través de la identidad administrada.

    Nota:

    Si realiza modificaciones en la máquina virtual de Azure, como restaurar una instantánea o cambiar el nombre de la máquina virtual, para restaurar la conectividad:

Configuración de Azure DevOps Server

Vuelva al asistente de configuración de Azure DevOps Server. Si configura una nueva instancia, seleccione Esta es una nueva implementación de Azure DevOps Server. Si actualiza o migra y tiene datos existentes en las bases de datos, seleccione Tengo bases de datos existentes que usar para esta implementación de Azure DevOps Server.

Cuando llegue a la página Base de datos del Asistente para configuración, especifique la instancia del servidor de Azure SQL Database. Normalmente, la instancia del servidor está en forma de SQLInstanceName.database.windows.net.

Ahora tiene una instancia de Azure DevOps Server que se ejecuta en Azure SQL Database.

Conexión a una base de datos de Azure SQL desde SSMS local

Realice los pasos siguientes para conectarse a una base de datos de Azure SQL desde SSMS local:

  1. Exporte mediante SQL Server Management Studio desde la máquina virtual que se ejecuta en la misma red virtual que un punto de conexión privado, de SQL al almacenamiento de blobs o al recurso compartido de archivos.

    Captura de pantalla que muestra los botones resaltados para la selección de la opción Exportar aplicación de nivel de datos.

  2. Puede usar el Asistente para exportar aplicaciones de capa de datos de SQL Server Management Studio para exportar la base de datos de Azure SQL a un archivo .bacpac. Puede almacenar el archivo .bacpac en Azure Blob Storage o recurso compartido de archivos.

    Captura de pantalla que muestra la pantalla de introducción para exportar la base de datos.

  3. Haga clic con el botón derecho en la base de datos SQL en el servidor SQL lógico desde SSMS>Tareas>Asistente para exportar aplicaciones de capa de datos.

    Captura de pantalla que muestra la ubicación de almacenamiento de archivos bacpac en la pantalla de ajustes de exportación.

  4. Seleccione Siguiente.

    Captura de pantalla que muestra el resumen de la configuración especificada.

  5. Seleccione la ubicación para almacenar el archivo BACPAC.

    Captura de pantalla que muestra la página de resultados y mensajes completos de la operación.

  6. Seleccione Cerrar.

Los paquetes DAC se encuentran aquí: C:\Users\{sample-user-name}\OneDrive - Microsoft\Documents\SQL Server Management Studio\DAC Packages.

Conexión de Azure SQL Database desde Azure DevOps Server 2022

La conexión de Azure SQL Database desde Azure DevOps Server 2022 (local) implica configurar el acceso, garantizar la conectividad y usar las credenciales adecuadas. Siga estos pasos para conectar Azure SQL Database desde Azure DevOps Server 2022.

Conexión a Azure SQL Database

  1. Obtener detalles de conexión de Azure SQL Database:

    • Nombre del servidor: <your-server-name>.database.windows.net
    • Nombre de la base de datos: <your-database-name>
    • Método de autenticación: autenticación de SQL Server (nombre de usuario y contraseña) o autenticación de Id. de Microsoft Entra.
  2. Conectar mediante SQL Server Management Studio (SSMS): a. Abra SQL Server Management Studio en la máquina donde está instalado Azure DevOps Server. b. Conexión a Azure SQL Database: c. Inicie SSMS. d. En la ventana Conectar con el servidor:

    • Escriba el nombre del servidor: <your-server-name>.database.windows.net
    • Elija Autenticación: Autenticación de SQL Server.
    • Escriba el nombre de usuario y la contraseña.
    • Seleccione Conectar. Una vez conectado, Azure SQL Database aparece en el Explorador de objetos de SSMS.
  3. Prueba de conectividad: Ejecute una consulta o un comando en SSMS:

     SELECT @@VERSION;
    

    Esta consulta devuelve la versión de SQL Server de azure SQL Database, lo que confirma que la conexión se ha realizado correctamente.

  4. Uso de la conexión en Azure DevOps Server: Una vez que compruebe la conectividad desde SSMS, puede usar esta conexión en Azure DevOps Server para diversas tareas como:

    • Implementaciones automatizadas: configure canalizaciones de versión en Azure DevOps Server para implementar cambios en la base de datos.
    • Migración de datos: Utilice scripts SQL o herramientas de gestión de datos integradas con Azure DevOps Server.
    • Integración continua: integre los cambios de la base de datos en las canalizaciones de CI/CD.

Propina

  • Ser seguro: Considere la posibilidad de usar el identificador entra de Microsoft para obtener acceso más seguro.
  • Administrar credenciales: Almacenar credenciales de forma segura y evitar codificarlas de forma rígida en scripts o configuraciones.
  • Monitor: Vigilar las conexiones y el uso de bases de datos para asegurar la seguridad y el rendimiento.

Conecte Azure SQL Database desde Azure DevOps Server 2022 que se ejecuta en las instalaciones, permitiendo una gestión e integración de bases de datos simplificadas con sus procesos de desarrollo e implementación. Ajuste las configuraciones y las medidas de seguridad en función de las directivas y requisitos de la organización.

Uso de la conexión de Azure SQL Database en Azure DevOps Server 2022

  1. Preparar Azure DevOps Server:
    a. Asegúrese de que tiene Azure DevOps Server 2022 instalado y configurado en el entorno local.</
    b. Acceso a Azure DevOps Server con los permisos adecuados para crear y administrar canalizaciones.

  2. Configurar el proyecto y el repositorio de Azure DevOps (si aún no lo ha hecho):
    . Cree un proyecto de Azure DevOps nuevo o use uno existente.
    b. Configure un repositorio de Git o TFVC para almacenar las definiciones y scripts de flujo de trabajo.

  3. Crear una canalización:
    a. Vaya al proyecto de Azure DevOps.
    b. Seleccione Tuberías>Tuberías>Nueva tubería.
    c. Seleccione la plantilla de canalización adecuada según sus requisitos. Para Azure SQL Database, puede empezar con un trabajo vacío o elegir una plantilla que se adapte a sus necesidades de implementación (por ejemplo, Azure Pipeline).
    d. Edite el archivo YAML de canalización o use el editor clásico para definir las fases y tareas de la canalización.

  4. Agregar tareas para implementar en Azure SQL Database:

    • Tarea: Implementación de base de datos de SQL Server: Use la tarea SqlAzureDacpacDeployment para implementar cambios en Azure SQL Database. Fragmento de código YAML de ejemplo:

      steps:
      - task: SqlAzureDacpacDeployment@1
        inputs:
          azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
          serverName: '<your-server-name>.database.windows.net'
          databaseName: '<your-database-name>'
          deployType: 'DacpacTask'
          authenticationType: 'server'
          sqlUsername: '$(sqlUsername)'
          sqlPassword: '$(sqlPassword)'
      

      Reemplace <your-server-name>, <your-database-name>, $(sqlUsername)y $(sqlPassword) por los valores o variables adecuados.

    • tarea: Azure SQL Query: Utiliza la tarea AzureSqlQuery para ejecutar consultas SQL contra Azure SQL Database. Fragmento de código YAML de ejemplo:

      steps:
      - task: AzureSqlQuery@1
       inputs:
         azureSubscription: 'YourServiceConnectionName'  # Use your Azure SQL Database service connection
         serverName: '<your-server-name>.database.windows.net'
         databaseName: '<your-database-name>'
         sqlUsername: '$(sqlUsername)'
         sqlPassword: '$(sqlPassword)'
         sqlQuery: 'SELECT * FROM TableName'
      
  5. Administración segura de credenciales: Uso de variables de Azure DevOps o integración de Azure Key Vault para administrar información confidencial como credenciales de SQL Server (sqlUsername y sqlPassword).

  6. Desencadenar y ejecutar la canalización:

    • Guarde y confirma los cambios del flujo de trabajo.
    • Active manualmente el flujo de trabajo o configure activadores (por ejemplo, al confirmar código o según un horario) de acuerdo con su estrategia de implementación.
  7. Supervisión de la ejecución de la canalización:

    • Supervise las ejecuciones de canalización en Azure DevOps para asegurarse de que las implementaciones en Azure SQL Database se realizan correctamente.
    • Revise los registros y salidas para solucionar los problemas durante la implementación.

Propina

  • Integrar con canalizaciones de publicación: Integra tu canalización de compilación con canalizaciones de publicación para escenarios y aprobaciones de implementación más complejos.
  • Realizar cambios incrementales en la base de datos: Usar herramientas como SQL Server Data Tools (SSDT) o migraciones para administrar los cambios incrementales en el esquema de la base de datos.
  • Usar control de versiones: Mantener los cambios de base de datos y scripts de SQL en el control de versiones para realizar un seguimiento de los cambios y garantizar la reproducibilidad.

Ajuste las configuraciones y las tareas en función de sus necesidades de implementación específicas y los requisitos de la organización.

Creación de una copia de seguridad de SQL Server

La creación de una copia de seguridad de SQL Server para Azure DevOps Server 2022 mediante la consola de administración de Azure DevOps Server implica configurar las opciones de copia de seguridad y programar copias de seguridad periódicas. Siga estos pasos para crear una copia de seguridad de SQL Server.

Requisitos previos para la copia de seguridad

Categoría Requisitos
Acceso administrador acceso al servidor donde está instalado Azure DevOps Server.
Permisos Permiso para configurar copias de seguridad y acceder a SQL Server Management Studio.

Crear copia de seguridad

  1. Inicie la consola de administración del servidor de Azure DevOps en el servidor donde está instalado Azure DevOps Server y seleccione nivel de aplicación>copias de seguridad programadas>Crear copias de seguridad programadas.

    Captura de pantalla que muestra los botones de selección en la consola de administración para crear una copia de seguridad programada.

  2. Introduzca la ruta de acceso de copia de seguridad de red y seleccione Siguiente.

    Captura de pantalla que muestra la ruta de acceso de copia de seguridad de red especificada.

  3. Seleccione las alertas de correo electrónico deseadas y, a continuación, seleccione Siguiente.

    Captura de pantalla que muestra el botón Siguiente resaltado como parte del proceso para crear una ruta de acceso de copia de seguridad de red.

  4. Elija una programación de copia de seguridad según sus requisitos y, a continuación, seleccione Siguiente.

    Captura de pantalla que muestra la programación de copia de seguridad seleccionada y el botón Siguiente resaltado.

  5. Confirme los ajustes de configuración y seleccione Verificar.

    Captura de pantalla que muestra el botón Comprobar resaltado en la pantalla de configuración.

    El Asistente de copias de seguridad comprueba que el directorio de copia de seguridad existe y es un directorio de red.

    Captura de pantalla que muestra el progreso de la comprobación de preparación.

Solución de errores

Si se produce un error de comprobación de preparación, consulte la siguiente información para obtener ayuda para solucionar problemas.

Error: Acceso a la cuenta de servicio

Captura de pantalla muestra un error de entorno durante la comprobación de preparación.

Mensaje de error:TF401009: The Azure DevOps service account NT AUTHORITY\LOCAL SERVICE cannot access network shares. Change to an account that can access the backup path. Este error se produce cuando la cuenta de servicio es NT AUTHORITY\LOCAL SERVICE.

Captura de pantalla que muestra el resumen de la capa de aplicación para el Servicio Local de la Autoridad NT.

Solución :

  1. Cree un usuario local con los permisos de acceso necesarios. Captura de pantalla que muestra el acceso y el usuario local recién creados.

  2. En la Consola de Administración del Servidor de Azure DevOps, vaya a la pantalla de Nivel de Aplicación y seleccione Cambiar Cuenta.

  3. Cambie la cuenta de servicio a la cuenta de usuario local recién creada. Captura de pantalla que muestra las nuevas pertenencias a grupos de usuarios.

  4. Rehacer el proceso de copia de seguridad para crear correctamente la copia de seguridad y volver a ejecutar las comprobaciones de preparación. Captura de pantalla que muestra que todas las comprobaciones se han realizado correctamente.

    Configuración correcta de copia de seguridad:

    Captura de pantalla que muestra la configuración correcta de la copia de seguridad.

    Registros de copia de seguridad programados:

    Captura de pantalla que muestra los archivos de registros de copia de seguridad programados.

    Copias de seguridad programadas de la consola de administración:

    Captura de pantalla que muestra la consola de administración en la que se muestran las copias de seguridad programadas.

Error: Archivo de registro

Captura de pantalla que muestra el vínculo resaltado para realizar una copia de seguridad completa ahora.

Ubicación del archivo de registro de ejemplo:

C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\Azure_DevOps_Server_Scheduled Backups_0627_192409.log

Mensaje de error del archivo de registro de ejemplo:

[7/1/2024 7:28:37 AM] [Error]``Exception Message: The backup of the file or filegroup "LeadingKey" is not permitted because it is not online. Container state: "Offline" (7). Restore status: 0. BACKUP can be performed by using the FILEGROUP or FILE clauses to restrict the selection to include only online data.``BACKUP DATABASE is terminating abnormally. (type SqlException)

Solución :

  • Asegúrese de que todos los grupos de archivos están en línea antes de realizar la copia de seguridad.

    ejemplo de LeadingKeyOffline:La captura de pantalla muestra las propiedades de la base de datos y el ejemplo de archivo de base de datos LeadingKey.

  • Pruebe el proceso de copia de seguridad mediante consultas SQL para identificar y resolver cualquier problema con grupos de archivos específicos.