Udostępnij za pośrednictwem


Przykład: nienadzorowany skrypt instalacji programu SQL Server dla systemu Red Hat Enterprise Linux

Dotyczy:programu SQL Server — Linux

Ten przykładowy skrypt bash instaluje serwer SQL Server w systemie Red Hat Enterprise Linux (RHEL) bez interakcji użytkownika. Zawiera przykłady instalowania aparatu bazy danych, narzędzi wiersza polecenia programu SQL Server, agenta programu SQL Server i wykonywania kroków po instalacji. Opcjonalnie możesz zainstalować wyszukiwanie pełnotekstowe i utworzyć użytkownika administracyjnego.

Napiwek

Jeśli nie potrzebujesz skryptu instalacji nienadzorowanej, najszybszym sposobem zainstalowania programu SQL Server jest wykonanie czynności opisanych w przewodniku Szybki start : Instalowanie programu SQL Server i tworzenie bazy danych w systemie Red Hat. Aby uzyskać inne informacje o konfiguracji, zobacz wskazówki dotyczące instalacji programu dla programu SQL Server w systemie Linux.

Warunki wstępne

Przykładowy skrypt

W tym przykładzie program SQL Server 2019 (15.x) jest instalowany w systemie RHEL 8.x. Jeśli chcesz zainstalować inną wersję programu SQL Server lub RHEL, zmień odpowiednio ścieżki repozytorium firmy Microsoft.

Zapisz przykładowy skrypt w pliku. Aby go dostosować, należy zastąpić wartości zmiennych w skrypcie. Można również ustawić dowolne zmienne skryptowe jako zmienne środowiskowe, o ile zostaną usunięte z pliku skryptu.

Ważny

Zmienna środowiskowa SA_PASSWORD jest przestarzała. Zamiast tego użyj MSSQL_SA_PASSWORD.

Hasło powinno być zgodne z domyślnymi zasadami haseł programu SQL Server. Domyślnie hasło musi mieć długość co najmniej ośmiu znaków i zawierać znaki z trzech z następujących czterech zestawów: wielkie litery, małe litery, cyfry podstawowe-10 i symbole. Hasła mogą mieć długość maksymalnie 128 znaków. Używaj haseł, które są tak długie i złożone, jak to możliwe.

#!/bin/bash -e

# Use the following variables to control your install:

# Password for the SA user (required)
MSSQL_SA_PASSWORD='<password>'

# Product ID of the version of SQL Server you're installing
# Must be evaluation, developer, express, web, standard, enterprise, or your 25 digit product key
# Defaults to developer
MSSQL_PID='evaluation'

# Enable SQL Server Agent (recommended)
SQL_ENABLE_AGENT='y'

# Install SQL Server Full Text Search (optional)
# SQL_INSTALL_FULLTEXT='y'

# Create an additional user with sysadmin privileges (optional)
# SQL_INSTALL_USER='<Username>'
# SQL_INSTALL_USER_PASSWORD='<password>'

if [ -z $MSSQL_SA_PASSWORD ]
then
  echo Environment variable MSSQL_SA_PASSWORD must be set for unattended install
  exit 1
fi

echo Adding Microsoft repositories...
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo

echo Installing SQL Server...
sudo yum install -y mssql-server

echo Running mssql-conf setup...
sudo MSSQL_SA_PASSWORD=$MSSQL_SA_PASSWORD \
     MSSQL_PID=$MSSQL_PID \
     /opt/mssql/bin/mssql-conf -n setup accept-eula

echo Installing mssql-tools and unixODBC developer...
sudo ACCEPT_EULA=Y yum install -y mssql-tools unixODBC-devel

# Add SQL Server tools to the path by default:
echo Adding SQL Server tools to your path...
echo PATH="$PATH:/opt/mssql-tools/bin" >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc

# Optional Enable SQL Server Agent:
if [ ! -z $SQL_ENABLE_AGENT ]
then
  echo Enable SQL Server Agent...
  sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
fi

# Optional SQL Server Full Text Search installation:
if [ ! -z $SQL_INSTALL_FULLTEXT ]
then
    echo Installing SQL Server Full-Text Search...
    sudo yum install -y mssql-server-fts
fi

# Configure firewall to allow TCP port 1433:
echo Configuring firewall to allow traffic on port 1433...
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

# Example of setting post-installation configuration options
# Set trace flags 1204 and 1222 for deadlock tracing:
#echo Setting trace flags...
#sudo /opt/mssql/bin/mssql-conf traceflag 1204 1222 on

# Restart SQL Server after making configuration changes:
echo Restarting SQL Server...
sudo systemctl restart mssql-server

# Connect to server and get the version:
counter=1
errstatus=1
while [ $counter -le 5 ] && [ $errstatus = 1 ]
do
  echo Waiting for SQL Server to start...
  sleep 5s
  /opt/mssql-tools/bin/sqlcmd \
    -S localhost \
    -U sa \
    -P $MSSQL_SA_PASSWORD \
    -Q "SELECT @@VERSION" 2>/dev/null
  errstatus=$?
  ((counter++))
done

# Display error if connection failed:
if [ $errstatus = 1 ]
then
  echo Cannot connect to SQL Server, installation aborted
  exit $errstatus
fi

# Optional new user creation:
if [ ! -z $SQL_INSTALL_USER ] && [ ! -z $SQL_INSTALL_USER_PASSWORD ]
then
  echo Creating user $SQL_INSTALL_USER
  /opt/mssql-tools/bin/sqlcmd \
    -S localhost \
    -U sa \
    -P $MSSQL_SA_PASSWORD \
    -Q "CREATE LOGIN [$SQL_INSTALL_USER] WITH PASSWORD=N'$SQL_INSTALL_USER_PASSWORD', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON; ALTER SERVER ROLE [sysadmin] ADD MEMBER [$SQL_INSTALL_USER]"
fi

echo Done!

Uruchamianie skryptu

Aby uruchomić skrypt:

  1. Wklej przykład do ulubionego edytora tekstów i zapisz go z pamiętną nazwą, taką jak install_sql.sh.

  2. Dostosuj MSSQL_SA_PASSWORD, MSSQL_PIDi dowolną inną zmienną, którą chcesz zmienić.

    Ostrożność

    Hasło powinno być zgodne z domyślnymi zasadami haseł programu SQL Server. Domyślnie hasło musi mieć długość co najmniej ośmiu znaków i zawierać znaki z trzech z następujących czterech zestawów: wielkie litery, małe litery, cyfry podstawowe-10 i symbole. Hasła mogą mieć długość maksymalnie 128 znaków. Używaj haseł, które są tak długie i złożone, jak to możliwe.

  3. Oznaczanie skryptu jako pliku wykonywalnego

    chmod +x install_sql.sh
    
  4. Uruchamianie skryptu

    ./install_sql.sh
    

Omówienie skryptu

Pierwszą rzeczą, jaką robi skrypt bash, jest ustawienie kilku zmiennych. Te zmienne mogą być zmiennymi skryptowymi, takimi jak przykład, lub zmienne środowiskowe. Zmienna MSSQL_SA_PASSWORD jest wymagana przez instalację programu SQL Server. Pozostałe są zmiennymi niestandardowymi utworzonymi dla skryptu. Przykładowy skrypt wykonuje następujące kroki:

  1. Zaimportuj publiczne klucze gpG firmy Microsoft.

  2. Zarejestruj repozytoria firmy Microsoft dla programu SQL Server i narzędzi wiersza polecenia.

  3. Zaktualizuj repozytoria lokalne.

  4. Zainstaluj program SQL Server.

  5. Skonfiguruj program SQL Server przy użyciu MSSQL_SA_PASSWORD i automatycznie zaakceptuj umowę licencyjną End-User.

  6. Automatycznie zaakceptuj umowę licencyjną End-User dla narzędzi wiersza polecenia programu SQL Server, zainstaluj je i zainstaluj pakiet unixODBC-devel.

  7. Dodaj narzędzia wiersza polecenia programu SQL Server do ścieżki w celu ułatwienia użycia.

  8. Włącz agenta programu SQL Server, jeśli zmienna skryptowa SQL_ENABLE_AGENT jest ustawiona domyślnie.

  9. Opcjonalnie zainstaluj wyszukiwanie Full-Text programu SQL Server, jeśli zmienna SQL_INSTALL_FULLTEXT jest ustawiona.

  10. Odblokuj port 1433 dla protokołu TCP w zaporze systemowej, co jest niezbędne do nawiązania połączenia z programem SQL Server z innego systemu.

  11. Opcjonalnie ustaw flagi śledzenia na potrzeby śledzenia zakleszczenia (wymaga odkomentowania wierszy).

  12. Program SQL Server jest teraz zainstalowany, aby umożliwić jego działanie, uruchom ponownie proces.

  13. Sprawdź, czy program SQL Server jest poprawnie zainstalowany, ukrywając wszystkie komunikaty o błędach.

  14. Utwórz nowego użytkownika administratora serwera, jeśli SQL_INSTALL_USER i SQL_INSTALL_USER_PASSWORD są ustawione.

Instalacja nienadzorowana

Uprość proces wielu nienadzorowanych instalacji i utwórz autonomiczny skrypt bash, który ustawi odpowiednie zmienne środowiskowe. Możesz usunąć dowolne zmienne używane przez przykładowy skrypt i umieścić je we własnym skrypcie Bash.

#!/bin/bash
export MSSQL_SA_PASSWORD='<password>'
export MSSQL_PID='evaluation'
export SQL_ENABLE_AGENT='y'
export SQL_INSTALL_USER='<Username>'
export SQL_INSTALL_USER_PASSWORD='<password>'

Ostrożność

Hasło powinno być zgodne z domyślnymi zasadami haseł programu SQL Server. Domyślnie hasło musi mieć długość co najmniej ośmiu znaków i zawierać znaki z trzech z następujących czterech zestawów: wielkie litery, małe litery, cyfry podstawowe-10 i symbole. Hasła mogą mieć długość maksymalnie 128 znaków. Używaj haseł, które są tak długie i złożone, jak to możliwe.

Następnie uruchom skrypt powłoki bash w następujący sposób:

. ./my_script_name.sh