Démarrage rapide : déployer SQL Server sur Linux à l’aide d’un playbook Ansible
S’applique à : SQL Server - Linux
Ce guide de démarrage rapide vous guide tout au long des étapes permettant d’automatiser un déploiement de SQL Server sur Linux sur des Machines virtuelles Microsoft Azure à l’aide d’un playbook Ansible.
Ansible est un produit open source qui automatise l’approvisionnement du cloud, la gestion de la configuration et le déploiement des applications.
Les playbooks Ansible vous permettent de demander à Ansible de configurer votre environnement. Les playbooks sont codés à l’aide de YAML afin d’être compréhensibles par l’homme.
Prérequis
Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
À l’aide d’Azure CLI, créez un groupe de ressources qui contient trois Machines virtuelles Azure :
Créez une machine virtuelle Azure, exécutant Red Hat Enterprise Linux (RHEL) 8.5 ou version ultérieure. Cette machine virtuelle deviendra le nœud de contrôleur.
Créez une machine virtuelle Azure, exécutant RHEL, qui servira de premier nœud managé.
Créez une machine virtuelle Azure, exécutant Ubuntu Server, qui servira de deuxième nœud managé.
Vue d’ensemble
La première machine virtuelle, où vous configurez Ansible Core, est le nœud de contrôleur. Sur ce nœud, vous allez installer le rôle système SQL Server.
Les machines virtuelles restantes seront les machines cibles, également appelées nœuds managés, pour le déploiement et la configuration de SQL Server à l’aide du rôle système.
Installer Ansible Core
À compter de RHEL 8.x sur des machines virtuelles Azure, le package ansible-core
peut être installé à partir du référentiel AppStream préconfiguré. Vous pouvez installer Ansible Core sur le nœud de contrôleur à l’aide de la commande suivante :
sudo yum install ansible-core
Vous pouvez vérifier que l’installation a réussi à l’aide de la commande suivante :
ansible --version
Le résultat ressemble à l’exemple suivant :
ansible [core 2.12.2]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/<user>/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.8/site-packages/ansible
ansible collection location = /home/<user>/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.8.12 (default, Sep 16 2021, 10:46:05) [GCC 8.5.0 20210514 (Red Hat 8.5.0-3)]
jinja version = 2.10.3
libyaml = true
Modifiez le fichier hosts
sur le nœud de contrôleur
Ansible crée un fichier hosts
dans le répertoire /etc/ansible
. Modifiez ce fichier à l’aide de votre éditeur favori pour ajouter les détails du nœud managé, soit en tant qu’entrée de groupe, soit sous forme d’entrées non groupées. Pour plus d’informations sur la création de votre propre inventaire, consultez Comment créer votre inventaire.
Dans cet exemple utilisant le fichier hosts
, l’adresse IP du premier nœud managé est 10.0.0.12 et l’adresse IP du deuxième nœud managé est 10.0.0.14.
# This is the default ansible 'hosts' file.
#
# It should live in /etc/ansible/hosts
#
# - Comments begin with the '#' character
# - Blank lines are ignored
# - Groups of hosts are delimited by [header] elements
# - You can enter hostnames or ip addresses
# - A hostname/ip can be a member of multiple groups
10.0.0.12
10.0.0.14
Configurer l’accès SSH sans mot de passe entre les nœuds
Vous devez configurer une connexion SSH (Secure Shell) entre le nœud de contrôleur et tous les nœuds managés où SQL Server doit être installé.
Configurer SSH sur le nœud de contrôleur
Si SSH a déjà été configuré, vous pouvez ignorer cette étape.
Utilisez la commande ssh-keygen
pour générer des clés SSH. Quand vous exécutez la commande, vous êtes invité à accepter les valeurs par défaut. Une fois l’opération terminée, vous disposez d’une paire de clés privées et publiques.
Copier la clé publique sur les nœuds managés
Sur chaque nœud managé, vous devez copier la clé publique à partir du nœud de contrôleur que vous venez de créer, à l’aide de la commande
ssh-copy-id
. Si vous souhaitez spécifier le répertoire cible sur le nœud managé, vous pouvez utiliser le paramètre-i
.Dans la commande suivante, le compte
user
peut être le même compte que celui que vous avez configuré pour chaque nœud managé lors de la création de la machine virtuelle. Vous pouvez également utiliser le compteroot
, mais cela n’est pas recommandé dans un environnement de production.sudo ssh-copy-id user@10.0.0.12 sudo ssh-copy-id user@10.0.0.14
Pour vérifier que la clé publique SSH a été copiée sur chaque nœud, utilisez la commande
ssh
à partir du nœud de contrôleur. Si vous avez correctement copié les clés, vous ne serez pas invité à entrer de mot de passe et la connexion aboutira.ssh user@10.0.0.12 ssh user@10.0.0.14
Installer le rôle système SQL Server
Le rôle système Ansible est appelé ansible-collection-microsoft-sql
. Sur le nœud de contrôleur, exécutez la commande suivante pour installer le rôle système SQL Server :
sudo yum install ansible-collection-microsoft-sql
Cette commande installe le rôle SQL Server sur /usr/share/ansible/collections
, avec les fichiers indiqués ci-dessous :
-rw-r--r--. 1 user user 7592 Jul 2 20:22 FILES.json
-rw-r--r--. 1 user user 1053 Jul 2 20:22 LICENSE-server
-rw-r--r--. 1 user user 854 Jul 2 20:22 MANIFEST.json
-rw-r--r--. 1 user user 1278 Jul 2 20:22 README.md
drwxr-xr-x. 1 user user 20 Jul 2 20:22 roles
drwxr-xr-x. 1 user user 20 Jul 2 20:22 tests
Créer et configurer le playbook Ansible
Après avoir installé le rôle système, vous allez créer le fichier YAML du playbook SQL Server. Pour comprendre les différentes variables de rôle, reportez-vous à la documentation ou au fichier README.md inclus avec le rôle système SQL Server.
L’exemple suivant montre un fichier de playbook, avec des variables de rôle définies pour configurer SQL Server et activer des fonctionnalités supplémentaires :
- hosts: all
vars:
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_password: "YourP@ssw0rd"
mssql_edition: Evaluation
mssql_enable_sql_agent: true
mssql_install_fts: true
mssql_install_powershell: true
mssql_tune_for_fua_storage: true
roles:
- microsoft.sql.server
Déployer SQL Server sur les nœuds managés
Pour déployer SQL Server sur des nœuds managés à l’aide du playbook Ansible, exécutez la commande suivante à partir du nœud de contrôleur.
sudo ansible-playbook -u user playbook.yaml
Ce processus lance le déploiement et, à la fin, vous devez voir un résumé du jeu qui ressemble à ceci :
PLAY RECAP *******
10.0.0.12 : ok=31 changed=42 unreachable=0 failed=0 skipped=0 rescued=1 ignored=0
10.0.0.14 : ok=31 changed=42 unreachable=0 failed=0 skipped=0 rescued=1 ignored=0
Nettoyer les ressources
Si vous ne souhaitez pas continuer à utiliser vos machines virtuelles Azure, n’oubliez pas de les supprimer. Si vous avez créé les trois machines virtuelles dans un nouveau groupe de ressources, vous pouvez supprimer toutes les ressources de ce groupe de ressources à l’aide d’Azure CLI.
Contenu connexe
- Démarrage rapide : Déployer un conteneur Linux SQL Server sur Kubernetes à l’aide de graphiques Helm
- Présentation de l’utilitaire adutil pour Active Directory
- Sauvegarder et restaurer des bases de données SQL Server sur Linux
- Configurer Microsoft Distributed Transaction Coordinator (MSDTC) sur Linux