L'année dernière, le rôle Ansible microsoft.sql.server a été ajouté à Red Hat Enterprise Linux (RHEL). À la suite du lancement de RHEL 8.8 et 9.2, ce rôle est mis à jour avec plusieurs nouvelles fonctions :
- Configuration de l'authentification de SQL Server avec le serveur Active Directory
- Capacités de gestion étendues pour les groupes de disponibilité Always On, notamment la prise en charge de la configuration de réplicas de disponibilité asynchrones et de la configuration de clusters Always On en lecture
- Configuration et gestion de SQL Server 2022 sur RHEL 8 et RHEL 9
Cet article présente l'intégration à Active Directory (AD) et vous guide tout au long du processus :
- S'assurer de remplir les conditions requises afin de configurer l'authentification AD pour SQL Server
- Préparer un fichier d'inventaire Ansible
- Découvrir les variables à définir et préparer un fichier de playbook Ansible en utilisant le rôle pour configurer automatiquement l'authentification avec Active Directory
- Exécuter le rôle
- Terminer la configuration
- Vérifier que l'authentification fonctionne comme prévu
Prérequis
Avant de commencer, vous devez vous assurer de remplir les conditions préalables pour le rôle.
- Vous devez disposer d'un serveur Active Directory en cours d'exécution auquel votre machine RHEL peut accéder. Les conditions préalables sont indiquées dans la documentation Microsoft : Joindre SQL Server sur un hôte Linux à un domaine Active Directory. Si vous ne parvenez pas à remplir ces conditions, consultez la page de résolution des problèmes liés à Active Directory.
- Assurez-vous que la recherche DNS fonctionne. Vous devez pouvoir effectuer un test ping sur le serveur Active Directory en utilisant son adresse IP et son nom DNS abrégé ou complet, à partir de votre machine RHEL.
- Assurez-vous que la recherche DNS inversée fonctionne. L'exécution de la commande
nslookup
pour l'adresse IP du serveur Active Directory doit renvoyer au nom DNS correct et inversement. - Vérifiez que votre profil utilisateur Active Directory dispose des autorisations nécessaires pour créer des comptes et des noms SPN (Service Principal Names) sur le domaine.
Préparation de l'inventaire Ansible
L'inventaire ne doit contenir que les serveurs RHEL que vous souhaitez configurer pour l'authentification Active Directory. Dans cet exemple, le fichier d'inventaire inventory.yml
utilisé contient un seul nœud RHEL rhel-sql-server.example.com
:
$ cat inventory.yml
---
all:
hosts:
rhel-sql-server.example.com
Utilisation du rôle
Ensuite, vous avez besoin d'un playbook pour configurer l'authentification avec Active Directory. Il est plus facile de le faire sur la base d'un exemple de playbook, en ajustant les variables et les paramètres selon les besoins.
Le rôle implique de définir certains mots de passe avec des variables. Les exemples de cet article fournissent ces variables en texte clair. Mais, notez qu'en production, vous devez utiliser Ansible Vault pour chiffrer les mots de passe.
Exemple de playbook
Voici un exemple de playbook enregistré sous playbook.yml
. Il configure l'authentification avec 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
Les variables de cet exemple sont divisées en trois sections : générales, obligatoires et facultatives.
Variables générales
Les variables qui acceptent le contrat de licence d'utilisateur final (CLUF) doivent être définies sur true
pour confirmer que vous acceptez les conditions du paquet mssql-server
. Voici quelques exemples :
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
Autres variables :
mssql_version
définit la version (2017, 2019 ou 2022) du serveur SQL Server que vous souhaitez gérer.mssql_password
définit le mot de passe pour l'utilisateursa
.mssql_edition
définit l'édition à configurer pour SQL Server.mssql_manage_firewall
active le pare-feu et ouvre les ports requis. Il s'agit d'une variable facultative. Utilisez-la uniquement si vous souhaitez que le rôle gère le pare-feu pour vous.
Variables obligatoires pour l'intégration AD
Les variables suivantes sont obligatoires.
mssql_ad_configure
: permet de configurer l'authentification Active Directory.mssql_ad_sql_user_name
: nom de l'utilisateur à créer sur le serveur Active Directory pour activer l'authentification de SQL Server. Le rôle utilise la commande adutil pour que l'utilisateur soit créé avec une autorisation d'accès en tant qu'utilisateur privilégié.mssql_ad_sql_password
: mot de passe de l'utilisateur en cours de création.ad_integration_realm
: nom du domaine Active Directory.ad_integration_user
: nom de l'utilisateur privilégié dans Active Directory. Cet utilisateur doit déjà exister dans le domaine.ad_integration_password
: mot de passe de l'utilisateur.
Variables facultatives pour l'intégration AD
Les variables suivantes sont facultatives.
mssql_ad_sql_user_dn
: vous devez définir cette variable si votre serveur AD stocke les comptes utilisateur dans une unité organisationnelle personnalisée plutôt que dans l'unité organisationnelle Users par défaut. Par défaut, le rôle crée le nom unique en fonction des valeurs fournies pour les variablesmssql_ad_sql_user_name
etad_integration_realm
, et utilise l'unité organisationnelleUsers
(par exemple,CN=sqluser,CN=Users,DC=DOMAIN,DC=COM
). Vous pouvez remplacer ce nom unique par un autre.mssql_ad_netbios_name
: vous devez définir cette variable lorsque le nom de domaine NetBIOS de votre serveur AD n'est pas le même que celui du premier sous-domaine du nom de domaine fourni avec la variablead_integration_realm
(par exemple, vous avez définiad_integration_realm
surdomain.contoso.com
, mais votre nom de domaine NetBIOS n'est pasdomain
). Cette valeur permet de créer l'identifiant de connexion{{ mssql_ad_netbios_name }}\{ad_integration_user }}
dans SQL Server.
Exécution du rôle Ansible
Une fois que vous avez rempli toutes les conditions préalables et que votre inventaire et votre playbook Ansible sont prêts, vous pouvez exécuter le playbook.
$ ansible-playbook -i inventory.yml playbook.yml
Ajout d'utilisateurs de domaine à SQL Server
Avant qu'un utilisateur puisse se connecter, vous devez l'ajouter à SQL Server. Pour ce faire, exécutez la commande T-SQL suivante pour chaque utilisateur de domaine AD :
CREATE LOGIN \[<domain>**<username>*\] FROM WINDOWS;
Activation de types de chiffrement supplémentaires
Après avoir exécuté le rôle pour configurer l'authentification Active Directory, vous devez ajouter les types de chiffrement Kerberos AES 128 et AES 256 à l'utilisateur défini avec la variable mssql_ad_sql_user_name
dans Active Directory. Vous pouvez utiliser l'interface utilisateur web d'Active Directory ou PowerShell.
Interface utilisateur web
Ouvrez l'interface utilisateur web de votre serveur AD et connectez-vous.
- Accédez à Tools > Active Directory Users and Computers > [domain] > Users > [sqluser] > Account (Outils > Utilisateurs et ordinateurs Active Directory > [domain] > Users > [sqluser] > Compte).
- Dans la liste Account options (Options de compte), sélectionnez This account supports Kerberos AES 128 bit encryption (Ce compte prend en charge le chiffrement Kerberos AES 128 bits) et This account supports Kerberos AES 256 bit encryption (Ce compte prend en charge le chiffrement Kerberos AES 256 bits).
- Cliquez sur Apply (Appliquer).
PowerShell
Dans PowerShell, utilisez la commande Set-ADUser
et remplacez <sqluser>
par le nom d'utilisateur que vous avez défini comme variable mssql_ad_sql_user_name
variable :
Set-ADUser -Identity <sqluser> -KerberosEncryptionType AES128,AES256
Vérification de l'authentification avec Active Directory
Maintenant que vous avez exécuté le rôle pour configurer l'authentification AD Server et que vous avez ajouté les types de chiffrement requis pour votre utilisateur <sqluser>
, vous pouvez vous authentifier à l'aide de l'une des méthodes suivantes.
- Windows ou RHEL : Azure Data Studio (ADS)
- Windows : SQL Server Management Studio (SSMS)
- RHEL : terminal Linux
Azure Data Studio (ADS)
Si vous n'avez pas encore installé le service ADS, suivez la documentation Microsoft pour télécharger et installer Azure Data Studio.
Une fois l'installation effectuée, lancez le service ADS.
- Cliquez sur Create a connection (Créer une connexion).
- Dans la liste Authentication type (Type d'authentification), sélectionnez Windows Authentication (Authentification Windows).
- Remplissez les autres champs, puis cliquez sur Connect (Connecter).
Vous pouvez désormais utiliser SQL Server.

SQL Server Management Studio
Commencez par vous connecter à Windows avec le profil utilisateur que vous souhaitez utiliser pour vous connecter à SQL Server, puis lancez SSMS.
- Dans le volet Connect to Server (Se connecter au serveur), sélectionnez Database Engine (Moteur de base de données) dans la liste Server type (Type de serveur).
- Dans le champ Server name (Nom du serveur), saisissez le nom de domaine complet de l'instance RHEL pour laquelle vous avez exécuté le rôle.
- Dans la liste Authentication (Authentification), sélectionnez Windows Authentication et remplissez les champs suivants.
- Server type : Database Engine
- Server name : nom du serveur à saisir
- Authentication : Windows Authentication
- Cliquez sur Connect.

Terminal Linux
Pour vérifier l'authentification à l'aide d'un terminal Linux, utilisez SSH pour vous connecter au serveur avec le profil utilisateur créé par le rôle.
$ ssh -l <sqluser>@<domain.com> <client.domain.com>
Récupérez un ticket Kerberos pour l'utilisateur Active Directory que vous souhaitez authentifier :
$ kinit <AD_user_name>@<DOMAIN.COM>
Utilisez la commande sqlcmd
afin de vous connecter à SQL Server, par exemple pour exécuter une requête qui permet d'obtenir l'utilisateur actuel :
/opt/mssql-tools/bin/sqlcmd -S. -Q 'SELECT SYSTEM_USER'
Conclusion
Le rôle microsoft.sql.server peut vous aider à automatiser l'intégration à Active Directory pour l'authentification des utilisateurs. Le rôle redhat.rhel_system_roles.ad_integration permet de se connecter à Active Directory et le rôle redhat.rhel_system_roles.firewall de configurer le pare-feu, et ce, de manière cohérente. Red Hat propose davantage de rôles système pour gérer différents services et outils sur RHEL. Si vous souhaitez automatiser vos workflows, consultez la liste des rôles système RHEL disponibles et lisez la documentation ou les articles de blog connexes sur le sujet. De nombreuses informations sont à votre disposition.
Si vous souhaitez connaître les autres avantages du rôle microsoft.sql.server, consultez sa documentation officielle.
À propos de l'auteur
Sergei Petrosian is a technical writer at Red Hat working on Satellite and Foreman documentation.
Parcourir par canal
Automatisation
Les dernières nouveautés en matière d'automatisation informatique pour les technologies, les équipes et les environnements
Intelligence artificielle
Actualité sur les plateformes qui permettent aux clients d'exécuter des charges de travail d'IA sur tout type d'environnement
Cloud hybride ouvert
Découvrez comment créer un avenir flexible grâce au cloud hybride
Sécurité
Les dernières actualités sur la façon dont nous réduisons les risques dans tous les environnements et technologies
Edge computing
Actualité sur les plateformes qui simplifient les opérations en périphérie
Infrastructure
Les dernières nouveautés sur la plateforme Linux d'entreprise leader au monde
Applications
À l’intérieur de nos solutions aux défis d’application les plus difficiles
Programmes originaux
Histoires passionnantes de créateurs et de leaders de technologies d'entreprise