Snabbstart: Distribuera SQL Server i Linux med hjälp av en Ansible-spelbok
gäller för:SQL Server – Linux
Den här snabbstarten tar dig igenom stegen för att automatisera en SQL Server på Linux-distribution på virtuella Azure-datorer med hjälp av en Ansible-spelbok.
Ansible är en produkt med öppen källkod som automatiserar molnetablering, konfigurationshantering och programdistributioner.
Ansible playbooks låter dig instruera Ansible att konfigurera din miljö. Spelböcker kodas med YAML för att vara läsbara för människor.
Förutsättningar
En Azure-prenumeration. Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto.
Skapa en ny resursgrupp med Hjälp av Azure CLI, som innehåller tre virtuella Azure-datorer (VM):
Skapa en virtuell Azure-datoroch kör Red Hat Enterprise Linux (RHEL) 8.5 eller senare. Den här virtuella datorn blir kontrollnod .
Skapa en virtuell Azure-dator, som kör RHEL, för att fungera som den första hanterade noden.
Skapa en virtuell Azure-dator, som kör Ubuntu Server, för att fungera som den andra hanterade noden.
Överblick
Den första virtuella datorn, där du konfigurerar Ansible Core, är kontrollantnoden. På den här noden installerar du SQL Server -systemrollen.
De återstående virtuella datorerna är måldatorerna, även kallade hanterade noder, för att implementera och konfigurera SQL Server med systemrollen.
Installera Ansible Core
Från och med RHEL 8.x på virtuella Azure-datorer kan ansible-core
-paketet installeras från den förkonfigurerade AppStream-lagringsplatsen. Du kan installera Ansible Core på kontrollantnoden med följande kommando:
sudo yum install ansible-core
Du kan kontrollera att installationen lyckades med följande kommando:
ansible --version
Du ser utdata som liknar följande exempel:
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
Redigera hosts
fil på kontrollantnoden
Ansible kommer att skapa en hosts
-fil i katalogen /etc/ansible
. Redigera den här filen med din favoritredigerare för att lägga till information om den hanterade noden, antingen som en grupppost eller som ogrupperade poster. Information om hur du skapar en egen inventering finns i Så här skapar du din inventering.
I det här exemplet med hjälp av filen hosts
är IP-adressen för den första hanterade noden 10.0.0.12 och IP-adressen för den andra hanterade noden är 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
Konfigurera lösenordsfri SSH-åtkomst mellan noder
Du måste konfigurera en SSH-anslutning (Secure Shell) mellan styrenhetsnoden och alla hanterade noder där SQL Server ska installeras.
Konfigurera SSH på kontrollantnoden
Om SSH redan har konfigurerats kan du hoppa över det här steget.
Använd kommandot ssh-keygen
för att generera SSH-nycklar. När du kör kommandot uppmanas du att acceptera standardvärdena. När du är klar har du ett privat och offentligt nyckelpar.
Kopiera den offentliga nyckeln till de hanterade noderna
På varje hanterad nod måste du kopiera den offentliga nyckeln från den styrenhetsnod som du nyss skapade med hjälp av kommandot
ssh-copy-id
. Om du vill ange målkatalogen på den hanterade noden kan du använda parametern-i
.I följande kommando kan
user
-kontot vara samma konto som du konfigurerade för varje hanterad nod när du skapade den virtuella datorn. Du kan också användaroot
-kontot, men det rekommenderas inte i en produktionsmiljö.sudo ssh-copy-id user@10.0.0.12 sudo ssh-copy-id user@10.0.0.14
Om du vill bekräfta att den offentliga SSH-nyckeln kopierades till varje nod använder du kommandot
ssh
från kontrollantnoden. Om du kopierade nycklarna korrekt uppmanas du inte att ange något lösenord och anslutningen lyckas.ssh user@10.0.0.12 ssh user@10.0.0.14
Installera SQL Server-systemrollen
Ansible-systemrollen kallas ansible-collection-microsoft-sql
. På kontrollantnoden kör du följande kommando för att installera SQL Server-systemrollen:
sudo yum install ansible-collection-microsoft-sql
Det här kommandot installerar SQL Server-rollen till /usr/share/ansible/collections
, med filerna som visas nedan:
-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
Skapa och konfigurera Ansible-spelboken
När du har installerat systemrollen skapar du YAML-filen för SQL Server-spelboken. Information om de olika rollvariablerna finns i dokumentationen eller de README.md som ingår i SQL Server-systemrollen.
I följande exempel visas en spelboksfil med rollvariabler definierade för att konfigurera SQL Server och aktivera ytterligare funktioner:
- 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
Distribuera SQL Server på de hanterade noderna
Om du vill distribuera SQL Server på hanterade noder med ansible-spelboken kör du följande kommando från kontrollantnoden.
sudo ansible-playbook -u user playbook.yaml
Den här processen påbörjar distributionen och i slutet bör du se en sammanfattning av spelet som ser ut ungefär så här:
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
Rensa resurser
Kom ihåg att ta bort dem om du inte ska fortsätta använda dina virtuella Azure-datorer. Om du har skapat de tre virtuella datorerna i en ny resursgrupp kan du ta bort alla resurser i resursgruppen med hjälp av Azure CLI-.