Lezen in het Engels

Delen via


Quickstart: SQL Server implementeren in Linux met behulp van een Ansible-playbook

van toepassing op:SQL Server- - Linux

In deze quickstart doorloopt u de stappen voor het automatiseren van een SQL Server op Linux-implementatie op virtuele Azure-machines met behulp van een Ansible--playbook.

Ansible- is een opensource-product waarmee cloudinrichting, configuratiebeheer en toepassingsimplementaties worden geautomatiseerd.

Ansible playbooks stellen u in staat Ansible te instrueren om uw omgeving te configureren. Playbooks worden gecodeerd met YAML, zodat ze leesbaar zijn voor mensen.

Voorwaarden

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.

  • Maak een nieuwe resourcegroep met behulp van Azure CLI, die drie virtuele Azure-machines (VM's) bevat:

    • een Azure VM-maken, waarop Red Hat Enterprise Linux (RHEL) 8.5 of hoger wordt uitgevoerd. Deze VM wordt het controllerknooppunt.

    • Een Azure-VM maken, waarop RHEL wordt uitgevoerd, om te fungeren als het eerste beheerde knooppunt.

    • een Azure VM-maken, waarop Ubuntu Server wordt uitgevoerd, om te fungeren als het tweede beheerde knooppunt.

Overzicht

De eerste VM, waar u Ansible Core configureert, is het controllerknooppunt. Op dit knooppunt installeert u de SQL Server-systeemrol.

De resterende VM's zijn de doelmachines, ook wel bekend als beheerde knooppunten, voor het implementeren en configureren van SQL Server met behulp van de systeemrol.

Ansible Core installeren

Vanaf RHEL 8.x op Virtuele Azure-machines kan het ansible-core-pakket worden geïnstalleerd vanuit de vooraf geconfigureerde AppStream-opslagplaats. U kunt Ansible Core installeren op het controllerknooppunt met behulp van de volgende opdracht:

Bash
sudo yum install ansible-core

U kunt controleren of de installatie is geslaagd met de volgende opdracht:

Bash
ansible --version

U ziet uitvoer die vergelijkbaar is met het volgende voorbeeld:

Output
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

hosts-bestand op controllerknooppunt bewerken

Ansible maakt een hosts bestand in de map /etc/ansible. Bewerk dit bestand met behulp van uw favoriete editor om de details van het beheerde knooppunt toe te voegen, hetzij als groepsvermelding of als niet-gegroepeerde vermeldingen. Zie How to build your inventoryvoor meer informatie over het maken van uw eigen inventaris.

In dit voorbeeld, met gebruik van het hosts-bestand, is het IP-adres voor het eerste beheerde knooppunt 10.0.0.12 en het IP-adres voor het tweede beheerde knooppunt 10.0.0.14.

Output
# 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

SSH-toegang zonder wachtwoord tussen knooppunten configureren

U moet een SSH-verbinding (Secure Shell) configureren tussen het controllerknooppunt en alle beheerde knooppunten waarop SQL Server moet worden geïnstalleerd.

SSH configureren op het controllerknooppunt

Als SSH al is geconfigureerd, kunt u deze stap overslaan.

Gebruik de opdracht ssh-keygen om SSH-sleutels te genereren. Wanneer u de opdracht uitvoert, wordt u gevraagd de standaardwaarden te accepteren. Als u klaar bent, hebt u een persoonlijk en openbaar sleutelpaar.

De openbare sleutel kopiëren naar de beheerde knooppunten

  1. Op elk beheerd knooppunt moet u de openbare sleutel kopiëren van het controllerknooppunt dat u zojuist hebt gemaakt, met behulp van de opdracht ssh-copy-id. Als u de doelmap op het beheerde knooppunt wilt opgeven, kunt u de parameter -i gebruiken.

  2. In de volgende opdracht kan het user-account hetzelfde account zijn dat u voor elk beheerd knooppunt hebt geconfigureerd bij het maken van de virtuele machine. U kunt ook het root-account gebruiken, maar dit wordt niet aanbevolen in een productieomgeving.

    Bash
    sudo ssh-copy-id user@10.0.0.12
    sudo ssh-copy-id user@10.0.0.14
    
  3. Gebruik de opdracht ssh van het controllerknooppunt om te bevestigen dat de openbare SSH-sleutel naar elk knooppunt is gekopieerd. Als u de sleutels correct hebt gekopieerd, wordt u niet om een wachtwoord gevraagd en is de verbinding geslaagd.

    Bash
    ssh user@10.0.0.12
    ssh user@10.0.0.14
    

De SQL Server-systeemrol installeren

De Ansible-systeemrol wordt ansible-collection-microsoft-sqlgenoemd. Voer op het controllerknooppunt de volgende opdracht uit om de SQL Server-systeemrol te installeren:

Bash
sudo yum install ansible-collection-microsoft-sql

Met deze opdracht wordt de SQL Server-rol naar /usr/share/ansible/collectionsgeïnstalleerd, met de onderstaande bestanden:

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

Het Ansible-playbook maken en configureren

Nadat u de systeemrol hebt geïnstalleerd, maakt u het YAML-bestand van het SQL Server-playbook. Raadpleeg de documentatie of de README.md opgenomen in de sql Server-systeemrol voor meer informatie over de verschillende rolvariabelen.

In het volgende voorbeeld ziet u een playbookbestand met rolvariabelen die zijn gedefinieerd om SQL Server te configureren en extra functionaliteit in te schakelen:

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

SQL Server implementeren op de beheerde knooppunten

Als u SQL Server wilt implementeren op beheerde knooppunten met behulp van het Ansible-playbook, voert u de volgende opdracht uit vanaf het controllerknooppunt.

Bash
sudo ansible-playbook -u user playbook.yaml

Met dit proces wordt de uitrol gestart. Aan het einde ziet u een samenvatting van de uitvoering die er ongeveer zo uitziet:

Output
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

Hulpmiddelen opschonen

Als u uw Virtuele Azure-machines niet meer gaat gebruiken, moet u deze verwijderen. Als u de drie VM's in een nieuwe resourcegroep hebt gemaakt, kunt u alle resources in die resourcegroep verwijderen met behulp van Azure CLI-.