Freigeben über


Schnellstart: Bereitstellen von SQL Server für Linux mithilfe eines Ansible-Playbooks

Gilt für: SQL Server – Linux

In diesem Schnellstart werden die Schritte zum Automatisieren einer Bereitstellung von SQL Server für Linux in Azure Virtual Machines mithilfe eines Ansible-Playbooks erläutert.

Ansible ist ein Open-Source-Produkt, mit dem die Cloudbereitstellung, Konfigurationsverwaltung und Anwendungsbereitstellungen automatisiert werden können.

Mit Ansible-Playbooks können Sie Ansible anweisen, Ihre Umgebung zu konfigurieren. Playbooks werden mit YAML codiert, damit sie für Menschen lesbar sind.

Voraussetzungen

  • Ein Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.

  • Erstellen Sie eine neue Ressourcengruppe mithilfe der Azure CLI, die drei virtuelle Azure-Computer (VMs) enthält:

Übersicht

Die erste VM, auf der Sie Ansible Core konfigurieren, ist der Controllerknoten. Auf diesem Knoten installieren Sie die SQL Server-Systemrolle.

Die verbleibenden VMs sind die Zielcomputer (auch als verwaltete Knoten bezeichnet) zum Bereitstellen und Konfigurieren von SQL Server mithilfe der Systemrolle.

Installieren von Ansible Core

Ab RHEL 8.x auf Azure-VMs kann das Paket ansible-core aus dem vorab konfigurierten AppStream-Repository installiert werden. Mithilfe des folgenden Befehls können Sie Ansible Core auf dem Controllerknoten installieren:

sudo yum install ansible-core

Sie können mit dem folgenden Befehl bestätigen, dass die Installation erfolgreich war:

ansible --version

Ihnen wird daraufhin eine Ausgabe angezeigt, die in etwa wie im folgenden Beispiel aussieht:

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

Bearbeiten der Datei hosts auf dem Controllerknoten

Ansible erstellt die Datei hosts im Verzeichnis /etc/ansible. Bearbeiten Sie diese Datei mithilfe Ihres bevorzugten Editors, um die Details der verwalteten Knoten entweder als Gruppeneintrag oder als nicht gruppierte Einträge hinzuzufügen. Informationen zum Erstellen Ihres eigenen Bestands finden Sie unter Erstellen Ihres Bestands.

In diesem Beispiel mit der Datei hosts ist die IP-Adresse für den ersten verwalteten Knoten 10.0.0.12 und die IP-Adresse für den zweiten verwalteten Knoten 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

Konfigurieren des kennwortlosen SSH-Zugriffs zwischen Knoten

Sie müssen eine SSH-Verbindung (Secure Shell) zwischen dem Controllerknoten und allen verwalteten Knoten konfigurieren, auf denen SQL Server installiert werden soll.

Konfigurieren von SSH auf dem Controllerknoten

Wenn SSH bereits konfiguriert wurde, können Sie diesen Schritt überspringen.

Verwenden Sie den Befehl ssh-keygen, um SSH-Schlüssel zu generieren. Wenn Sie den Befehl ausführen, werden Sie aufgefordert, die Standardwerte zu akzeptieren. Wenn Sie fertig sind, verfügen Sie über ein privates und öffentliches Schlüsselpaar.

Kopieren des öffentlichen Schlüssels in die verwalteten Knoten

  1. Sie müssen auf jedem verwalteten Knoten den öffentlichen Schlüssel vom gerade erstellten Controllerknoten mithilfe des Befehls ssh-copy-id kopieren. Wenn Sie das Zielverzeichnis auf dem verwalteten Knoten angeben möchten, können Sie den Parameter -i verwenden.

  2. Im folgenden Befehl kann das Konto user das gleiche Konto sein, das Sie bei der Erstellung des virtuellen Computers für jeden verwalteten Knoten konfiguriert haben. Sie können auch das Konto root verwenden, aber dies wird in einer Produktionsumgebung nicht empfohlen.

    sudo ssh-copy-id user@10.0.0.12
    sudo ssh-copy-id user@10.0.0.14
    
  3. Um zu bestätigen, dass der öffentliche SSH-Schlüssel in jeden Knoten kopiert wurde, verwenden Sie den Befehl ssh auf dem Controllerknoten. Wenn Sie die Schlüssel ordnungsgemäß kopiert haben, werden Sie nicht zur Eingabe eines Kennworts aufgefordert, und die Verbindung wurde erfolgreich hergestellt.

    ssh user@10.0.0.12
    ssh user@10.0.0.14
    

Installieren der SQL Server-Systemrolle

Die Ansible-Systemrolle heißt ansible-collection-microsoft-sql. Führen Sie auf dem Controllerknoten den folgenden Befehl aus, um die SQL Server-Systemrolle zu installieren:

sudo yum install ansible-collection-microsoft-sql

Dieser Befehl installiert die SQL Server-Rolle mit den unten gezeigten Dateien unter /usr/share/ansible/collections:

-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

Erstellen und Konfigurieren des Ansible-Playbooks

Nach der Installation der Systemrolle erstellen Sie die YAML-Datei für das SQL Server-Playbook. Informationen zu den verschiedenen Rollenvariablen finden Sie in der Dokumentation oder in der Datei „README.md“, die mit der SQL Server-Systemrolle bereitgestellt wurde.

Das folgende Beispiel zeigt eine Playbookdatei mit definierten Rollenvariablen zum Konfigurieren von SQL Server und Aktivieren zusätzlicher Funktionen:

- 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​

Bereitstellen von SQL Server auf den verwalteten Knoten

Um SQL Server mithilfe des Ansible-Playbooks auf verwalteten Knoten bereitzustellen, führen Sie den folgenden Befehl auf dem Controllerknoten aus:

sudo ansible-playbook -u user playbook.yaml

Dieser Prozess beginnt mit der Bereitstellung, und am Ende sollte eine Zusammenfassung der Wiedergabe angezeigt werden, die ähnlich wie folgt aussieht:

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

Bereinigen von Ressourcen

Wenn Sie Ihre Azure-VMs nicht mehr verwenden möchten, denken Sie daran, sie zu entfernen. Wenn Sie die drei VMs in einer neuen Ressourcengruppe erstellt haben, können Sie alle Ressourcen in dieser Ressourcengruppe mithilfe der Azure CLI entfernen.