Partager via


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

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

  1. 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.

  2. 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 compte root, 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
    
  3. 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.