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 adicionales en comparación con el uso de un servidor SQL Server local.

Requisitos

  • Azure SQL Database solo se puede usar con Azure DevOps Server 2019 y versiones posteriores.
  • Debe instalar Azure DevOps Server en una máquina virtual de Azure.
  • La máquina virtual debe tener habilitada la identidad administrada por el sistema, que se usa para autenticarse en la base de datos de Azure SQL.
  • La máquina virtual debe estar unida a un dominio, pero no a un grupo de trabajo.
  • Las bases de datos de Azure SQL deben ser bases de datos únicas. Las instancias administradas y los grupos elásticos se admiten en Azure DevOps Server 2022 y versiones posteriores.

Se admiten todas las SKU de uso general y Premium. También se admiten las SKU estándar S3 y versiones posteriores. No se admiten las SKU básicas y las SKU estándar S2 ni las siguientes. Las configuraciones de Azure DevOps Server que usan Azure SQL Database no admiten versiones anteriores de SQL Server Reporting Services con las características de informes de SQL Server Analysis Services. En su lugar, puede usar Azure DevOps Analytics.

La actualización a Azure DevOps Server solo se admite desde Team Foundation Server 2015 y versiones posteriores cuando se usa Azure SQL Database. 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_Configuration

    • AzureDevOps_DefaultCollection

      Nota:

      Puede omitir este paso si usa bases de datos existentes para:

      • Actualice una nueva versión de Azure DevOps Server.
      • Migre una instancia actualizada de Azure DevOps Server a Azure SQL Database.
  3. Configure la autenticación de Azure Active Directory para su servidor de bases de datos SQL de Azure. Hazte el administrador de Active Directory 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.

  4. Habilite su identidad administrada, o las identidades si utiliza varios servidores, para que inicien sesión en su base de datos de Azure SQL y se les concedan los permisos adecuados. Conéctese al servidor de bases de datos mediante SQL Server Management Studio. Conéctese mediante un usuario de Azure Active Directory con la autenticación de Active Directory . No puede manipular usuarios de Azure Active Directory si inicia sesión en Azure SQL Database con autenticación SQL.

    a. Ejecute el siguiente comando T-SQL en la main base de datos:

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

    Reemplace VMName por el nombre de la máquina virtual cuya identidad administrada agregue a la base de datos.

    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  
    

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 desde una máquina virtual que opera en la misma red virtual que un punto de conexión privado, utilizando SQL Server Management Studio (SSMS), hacia un almacenamiento de blobs o compartición de archivos.

    Captura de pantalla que muestra los botones resaltados para seleccionar la opción Exportar aplicación de capa 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.

Prerrequisitos

Categoría Requisitos
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.

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. Conectividad de prueba: Ejecutar una consulta o un comando en SSMS para comprobar la conectividad:

     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 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 git o TFVC para almacenar las definiciones y scripts de canalización.

  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. Escriba 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 la comprobación de preparación en curso.

Solución de errores

En caso de que se produzca 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 del nivel de aplicación para el servicio local de la entidad 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 verificaciones 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 muestra una configuración correcta de 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:La captura de pantalla muestra la consola de administración que muestra la pantalla de 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\TFS_Scheduled Backups_0627_192409.logMensaje 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.