Suscríbase al feed

El año pasado, se presentó la función microsoft.sql.server de Ansible en Red Hat Enterprise Linux (RHEL). Con el lanzamiento de RHEL 8.8 y 9.2, esta función se actualiza con varias características nuevas:

En este artículo, se explica la integración en Active Directory (AD) y se lo guía a través de todo el proceso:

  1. Asegúrese de cumplir los requisitos para configurar la autenticación de AD para SQL Server.
  2. Prepare un archivo de inventario de Ansible.
  3. Explore las variables que debe establecer y prepare un archivo de playbook de Ansible con la función para configurar automáticamente la autenticación con Active Directory.
  4. Ejecute la función.
  5. Finalice la configuración.
  6. Compruebe que la autenticación funcione como se esperaba.

Requisitos previos

Antes de comenzar, debe asegurarse de cumplir los requisitos previos que requiere la función.

  1. Debe tener un servidor de Active Directory en ejecución y su máquina de RHEL debe poder acceder a él. Puede leer la descripción general de los requisitos previos en la documentación de Microsoft en Unión de SQL Server en un host de Linux a un dominio de Active Directory. Si tiene problemas para cumplir con los requisitos previos, consulte el artículo Solución de problemas de la autenticación de Active Directory para SQL Server en Linux y contenedores.
  2. Asegúrese de que la búsqueda de DNS funcione. Debe poder comprobar la disponibilidad del servidor de Active Directory correctamente por su dirección IP y sus nombres de DNS cortos y completos desde su máquina de RHEL.
  3. Asegúrese de que funcione la búsqueda inversa de DNS. La ejecución del comando nslookup para la dirección IP del servidor de Active Directory debe resolverse en el nombre de DNS correcto y, a su vez, el nombre de DNS debe resolverse en la dirección IP correcta.
  4. Asegúrese de tener el acceso y las credenciales de un usuario de Active Directory con permiso para crear cuentas y nombres principales de servicio (SPN) en el dominio.

Preparar el inventario de Ansible

El inventario solo debe contener los servidores de RHEL que desee configurar para la autenticación de Active Directory. Este ejemplo usa el archivo de inventario inventory.yml, que contiene un solo nodo de RHEL, rhel-sql-server.example.com:

$ cat inventory.yml
---
all:
hosts:
rhel-sql-server.example.com

Utilice la función

A continuación, necesita un playbook para configurar la autenticación con Active Directory. Esto resulta más fácil después de ver un playbook de ejemplo, ajustar las variables y los parámetros según sea necesario y usarlo como base para el suyo propio.

Tenga en cuenta que la función requiere que se establezcan algunas contraseñas con variables. Los ejemplos de este artículo proporcionan estas variables en texto sin formato, pero en producción debe usar Ansible Vault para cifrar las contraseñas.

Playbook de ejemplo

Este es un playbook de ejemplo guardado como playbook.yml. El playbook configura la autenticación con Active Directory:

---
- name: Configure with AD server authentication
hosts: all
vars:
# General variables
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula: true
mssql_accept_microsoft_cli_utilities_for_sql_server_eula: true
mssql_accept_microsoft_sql_server_standard_eula: true
mssql_version: 2022
mssql_password: "p@55w0rD"
mssql_edition: Evaluation
mssql_manage_firewall: true
# AD Integration required variables
mssql_ad_configure: true
mssql_ad_sql_user_name: sqluser
mssql_ad_sql_password: "p@55w0rD1"
ad_integration_realm: domain.com
ad_integration_user: Administrator
ad_integration_password: Secret123
# AD Integration optional variables
mssql_ad_sql_user_dn: "CN=sqluser,CN=Users,DC=DOMAIN,DC=COM"
mssql_ad_netbios_name: domain

Las variables del playbook de ejemplo se dividen en tres secciones: generales, requeridas y opcionales.

Variables generales

Las variables para aceptar el Acuerdo de licencia de usuario final (EULA) deben establecerse en true para confirmar que se aceptan los términos del paquete mssql-server. Por ejemplo:

  • mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula
  • mssql_accept_microsoft_cli_utilities_for_sql_server_eula
  • mssql_accept_microsoft_sql_server_standard_eula

Otras variables:

  • mssql_version define la versión (2017, 2019 o 2022) de SQL Server que desea gestionar.
  • mssql_password establece la contraseña para el usuario sa.
  • mssql_edition define la edición que se va a configurar para SQL Server.
  • mssql_manage_firewall habilita el firewall y abre los puertos requeridos. Esta es una variable opcional. Úsela solo si desea que la función gestione el firewall por usted.

Variables requeridas para la integración de AD

Estas variables son obligatorias:

  • mssql_ad_configure: si se debe configurar la autenticación de Active Directory.
  • mssql_ad_sql_user_name: el nombre del usuario que se creará en el servidor de Active Directory para habilitar la autenticación de SQL Server. La función usa adutil, que requiere que el usuario se cree con permiso para acceder a él como usuario con privilegios.
  • mssql_ad_sql_password: la contraseña para el usuario que se crea.
  • ad_integration_realm: el nombre del dominio de Active Directory.
  • ad_integration_user: el nombre del usuario con privilegios en Active Directory. Este usuario ya debe existir en el dominio.
  • ad_integration_password: la contraseña para el usuario.

Variables opcionales para la integración de AD

Estas variables son opcionales:

  • mssql_ad_sql_user_dn: debe establecer esta variable si su servidor de AD almacena cuentas de usuario en una unidad organizativa (OU) personalizada en lugar de en la unidad organizativa de usuarios predeterminada. De manera predeterminada, la función crea el nombre diferenciado en función de los valores provistos para las variables mssql_ad_sql_user_name y ad_integration_realm y usa la unidad organizativa Users (por ejemplo, CN=sqluser,CN=Users,DC=DOMAIN,DC=COM). Puede sobrescribir esto proporcionando un nombre diferenciado.
  • mssql_ad_netbios_name: debe establecer esta variable cuando el nombre de dominio de NetBIOS de su servidor de AD no es igual al primer subdominio del nombre de dominio que usted proporciona con la variable ad_integration_realm (por ejemplo, estableció ad_integration_realm en domain.contoso.com, pero su nombre de dominio de NetBIOS no es domain). Este valor se usa para crear el inicio de sesión de {{ mssql_ad_netbios_name }}\{ad_integration_user }} en SQL Server.

Ejecute la función de Ansible

Después de asegurarse de cumplir todos los requisitos previos y de tener el inventario y el playbook de Ansible listos, puede ejecutar este último.

$ ansible-playbook -i inventory.yml playbook.yml

Agregue usuarios de dominio a SQL Server

Antes de que un usuario pueda iniciar sesión, debe agregarlo a SQL Server. Para ello, ejecute el siguiente comando de T-SQL para cada usuario de dominio de AD:

CREATE LOGIN \[<domain>**<username>*\] FROM WINDOWS;

Habilite tipos de cifrado adicionales

Después de ejecutar la función para configurar la autenticación de Active Directory, debe agregar los tipos de cifrado Kerberos AES128 y AES256 al usuario definido con la variable mssql_ad_sql_user_name en Active Directory. Puede hacerlo con la interfaz de usuario web de Active Directory o con PowerShell.

Interfaz de usuario web

Abra la interfaz de usuario web del servidor de AD e inicie sesión.

  1. Diríjase a Tools > Active Directory Users and Computers > [domain] > Users > [sqluser] > Account.
  2. En la lista Account options, seleccione This account supports Kerberos AES 128 bit encryption y This account supports Kerberos AES 256 bit encryption.
  3. Haga clic en Apply.

PowerShell

En PowerShell, use el comando Set-ADUser y remplace <sqluser> por el nombre de usuario que estableció como la variable mssql_ad_sql_user_name:

Set-ADUser -Identity <sqluser> -KerberosEncryptionType AES128,AES256

Compruebe la autenticación con Active Directory

Ahora que ejecutó la función para configurar la autenticación del servidor de AD y agregó los tipos de cifrado requeridos a su usuario<sqluser>, puede autenticarse con alguno de los siguientes métodos:

  • Windows o RHEL: Azure Data Studio (ADS)
  • Windows: SQL Server Management Studio (SSMS)
  • RHEL: terminal de Linux

Azure Data Studio (ADS)

Si aún no lo tiene instalado, siga las instrucciones de la documentación de Microsoft para descargar e instalar Azure Data Studio.

Una vez que esté instalado, inícielo.

  1. Haga clic en Create a connection.
  2. En la lista Authentication type, seleccione Windows Authentication.
  3. Complete los demás campos y haga clic en Connect.

Ahora puede usar SQL Server.

Azure Data Studio user interface

SQL Server Management Studio (SSMS)

Primero, inicie sesión en Windows con el usuario que desea usar para iniciar sesión en SQL Server y, luego, inicie SSMS.

  1. En el panel Connect to Server, seleccione Database Engine de la lista Server type.
  2. En el campo Server name, ingrese el nombre de dominio completamente calificado (FQDN) de la instancia de RHEL para la que ejecutó la función.
  3. En la lista Authentication, seleccione Windows Authentication y complete estos campos:
    • Server type: Database Engine
    • Server name: ingrese el nombre de su servidor
    • Authentication: Windows Authentication
  4. Haga clic en Connect.
SQL Server Management Studio user interface

Terminal de Linux

Para comprobar la autenticación con un terminal de Linux, use SSH para iniciar sesión en el servidor con el usuario creado por la función.

$ ssh -l <sqluser>@<domain.com> <client.domain.com>

Obtenga un ticket de Kerberos para el usuario de Active Directory que desea autenticar:

$ kinit <AD_user_name>@<DOMAIN.COM>

Use sqlcmd para iniciar sesión en SQL Server y, por ejemplo, ejecute una consulta para obtener el usuario actual:

/opt/mssql-tools/bin/sqlcmd -S. -Q 'SELECT SYSTEM_USER'

Conclusión

La función microsoft.sql.server puede ayudarlo a automatizar la integración en Active Directory para la autenticación de usuarios. Esta función usa redhat.rhel_system_roles.ad_integration para conectarse a Active Directory, y redhat.rhel_system_roles.firewall para configurar el firewall, y lo hace de manera uniforme. Red Hat ofrece más funciones del sistema para gestionar diferentes servicios y herramientas en RHEL. Si desea automatizar sus flujos de trabajo, consulte la lista de funciones del sistema RHEL disponibles y lea la documentación o las publicaciones de blog relacionadas sobre el tema. ¡Hay muchas opciones disponibles!

Si quiere conocer otras maneras en las que puede ayudarlo la función microsoft.sql.server, consulte la documentación oficial.


Sobre el autor

Sergei Petrosian is a technical writer at Red Hat working on Satellite and Foreman documentation.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Navegar por canal

automation icon

Automatización

Las últimas novedades en la automatización de la TI para los equipos, la tecnología y los entornos

AI icon

Inteligencia artificial

Descubra las actualizaciones en las plataformas que permiten a los clientes ejecutar cargas de trabajo de inteligecia artificial en cualquier lugar

open hybrid cloud icon

Nube híbrida abierta

Vea como construimos un futuro flexible con la nube híbrida

security icon

Seguridad

Vea las últimas novedades sobre cómo reducimos los riesgos en entornos y tecnologías

edge icon

Edge computing

Conozca las actualizaciones en las plataformas que simplifican las operaciones en el edge

Infrastructure icon

Infraestructura

Vea las últimas novedades sobre la plataforma Linux empresarial líder en el mundo

application development icon

Aplicaciones

Conozca nuestras soluciones para abordar los desafíos más complejos de las aplicaciones

Original series icon

Programas originales

Vea historias divertidas de creadores y líderes en tecnología empresarial