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
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:
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.
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.
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:
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.
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.
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.
Seleccione Siguiente.
Seleccione la ubicación para almacenar el archivo BACPAC.
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
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.
- Nombre del servidor:
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.
- Escriba el nombre del servidor:
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.
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
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.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.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.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'
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
ysqlPassword
).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.
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
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.
Escriba la ruta de acceso de copia de seguridad de red y seleccione Siguiente.
Seleccione las alertas de correo electrónico deseadas y, a continuación, seleccione Siguiente.
Elija una programación de copia de seguridad según sus requisitos y, a continuación, seleccione Siguiente.
Confirme los ajustes de configuración y seleccione Verificar.
El Asistente de copias de seguridad comprueba que el directorio de copia de seguridad existe y es un directorio de red.
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
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.
Solución :
- Cree un usuario local con los permisos de acceso necesarios.
- En la Consola de Administración del Servidor de Azure DevOps, vaya a la pantalla de Nivel de Aplicación y seleccione Cambiar Cuenta.
- Cambie la cuenta de servicio a la cuenta de usuario local recién creada.
- Rehacer el proceso de copia de seguridad para crear correctamente la copia de seguridad y volver a ejecutar las verificaciones de preparación.
Configuración correcta de copia de seguridad:
Registros de copia de seguridad programados:
Copias de seguridad programadas de la Consola de administración:
Error: Archivo de registro
Ubicación del archivo de registro de ejemplo:C:\ProgramData\Microsoft\Azure DevOps\Server Configuration\Logs\TFS_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:
Pruebe el proceso de copia de seguridad mediante consultas SQL para identificar y resolver cualquier problema con grupos de archivos específicos.