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:
Erstellen Sie eine Azure-VM, auf der Red Hat Enterprise Linux (RHEL) 8.5 oder höher ausgeführt wird. Diese VM wird zum Controllerknoten.
Erstellen Sie eine Azure-VM, auf der RHEL ausgeführt wird und die als erster verwalteter Knoten fungiert.
Erstellen Sie eine Azure-VM, auf der Ubuntu Server ausgeführt wird und die als zweiter verwalteter Knoten fungiert.
Ü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
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.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 Kontoroot
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
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.
Zugehöriger Inhalt
- Schnellstart: Bereitstellen eines SQL Server für Linux-Containers in Kubernetes mithilfe von Helm-Charts
- Einführung in adutil – Active Directory-Hilfsprogramm
- Sichern und Wiederherstellen von SQL Server-Datenbanken für Linux
- Konfigurieren von Microsoft Distributed Transaction Coordinator (MS DTC) unter Linux