Ukázka: Bezobslužný instalační skript SQL Serveru pro Ubuntu

Platí pro:SQL Server na Linuxu

Tento ukázkový skript Bash nainstaluje SQL Server na Ubuntu bez interaktivního vstupu. Uvádí příklady instalace Database Engine, příkazových nástrojů SQL Server, SQL Server Agent a provádění kroků po instalaci. Volitelně můžete nainstalovat fulltextové vyhledávání a vytvořit správce.

Tip

Pokud nepotřebujete bezobslužný instalační skript, nejrychlejší způsob instalace SQL Serveru je postupovat podle rychlého startu pro Ubuntu. Další informace o nastavení najdete v tématu Pokyny k instalaci SQL Serveru v systému Linux.

Předpoklady

  • Ke spuštění SQL Serveru v Linuxu potřebujete alespoň 2 GB paměti.
  • Systém souborů musí být XFS nebo ext4. Jiné systémy souborů, například BTRFS, nejsou podporovány.
  • Další požadavky na systém najdete v tématu Požadavky na systém pro SQL Server v systému Linux.

Ukázkový skript

Tento příklad nainstaluje SQL Server 2019 (15.x) na Ubuntu Server 20.04. Pokud chcete nainstalovat jinou verzi SQL Serveru nebo Ubuntu Serveru, odpovídajícím způsobem změňte cesty k úložišti Microsoftu.

Uložte ukázkový skript do souboru a pak ho upravte. Hodnoty proměnných ve skriptu musíte nahradit. Můžete také nastavit libovolnou skriptovací proměnnou jako proměnné prostředí, pokud je ze souboru skriptu odeberete.

Skript se pětkrát pokusí připojit, zatímco se SQL Server spouští. Pokud všechny pokusy selžou, skript ukončí s nenulovým stavem.

Important

Proměnná prostředí SA_PASSWORD se již nepoužívá. Místo toho použijte MSSQL_SA_PASSWORD.

Vaše heslo by mělo splňovat výchozí zásady hesla pro SQL Server. Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.

#!/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 evaluation
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...
curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
repoargs="$(curl https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
sudo add-apt-repository "${repoargs}"
repoargs="$(curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list)"
sudo add-apt-repository "${repoargs}"

echo Running apt-get update -y...
sudo apt-get update -y

echo Installing SQL Server...
sudo apt-get 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 apt-get install -y mssql-tools unixodbc-dev

# 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 [ -n "$SQL_ENABLE_AGENT" ]
then
  echo Enabling SQL Server Agent...
  sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true
fi

# Optional SQL Server Full-Text Search installation:
if [ -n "$SQL_INSTALL_FULLTEXT" ]
then
    echo Installing SQL Server Full-Text Search...
    sudo apt-get install -y mssql-server-fts
fi

# Configure firewall to allow TCP port 1433:
echo Configuring UFW to allow traffic on port 1433...
sudo ufw allow 1433/tcp
sudo ufw reload

# Optional example of post-installation configuration.
# Trace flags 1204 and 1222 are for deadlock tracing.
# echo Setting trace flags...
# sudo /opt/mssql/bin/mssql-conf trace flag 1204 1222 on

# Restart SQL Server after installing:
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" -ne 0 ]
do
  echo Waiting for SQL Server to start...
  sleep 3s
  if /opt/mssql-tools/bin/sqlcmd \
      -S localhost \
      -U sa \
      -P "$MSSQL_SA_PASSWORD" \
      -Q "SELECT @@VERSION" 2>/dev/null
  then
    errstatus=0
  else
    errstatus=$?
  fi
  ((counter += 1))
done

# Display error if connection failed:
if [ "$errstatus" -ne 0 ]
then
  echo Cannot connect to SQL Server, installation aborted
  exit "$errstatus"
fi

# Optional new user creation:
if [ -n "$SQL_INSTALL_USER" ] && [ -n "$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!

Spuštění skriptu

Spuštění skriptu:

  1. Vložte ukázku do svého oblíbeného textového editoru a uložte ho s zapamatovatelným názvem, například install_sql.sh.

  2. Přizpůsobte MSSQL_SA_PASSWORD, MSSQL_PIDa kteroukoli z dalších proměnných, které chcete změnit.

  3. Označte skript jako spustitelný:

    chmod +x install_sql.sh
    
  4. Spusťte skript:

    ./install_sql.sh
    

Vysvětlení skriptu

První věc, kterou skript Bash dělá, je nastavit několik proměnných. Tyto proměnné můžou být skriptovací proměnné, jako je ukázka, nebo proměnné prostředí. Proměnná MSSQL_SA_PASSWORD je vyžadovaná instalací SQL Serveru. Ostatní jsou vlastní proměnné vytvořené pro skript. Ukázkový skript provede následující kroky:

  1. Importujte veřejné klíče Microsoft GPG.

  2. Zaregistrujte úložiště Microsoftu pro SQL Server a nástroje příkazového řádku.

  3. Aktualizujte místní úložiště.

  4. Nainstalujte SQL Server.

  5. Nakonfigurujte SQL Server pomocí MSSQL_SA_PASSWORD a automaticky přijměte licenční smlouvu End-User.

  6. Automaticky přijměte licenční smlouvu End-User pro nástroje příkazového řádku SQL Serveru, nainstalujte je a nainstalujte balíček unixodbc-dev.

  7. Přidejte do cesty nástroje příkazového řádku SQL Serveru, abyste je mohli snadno používat.

  8. Povolte SQL Server Agent, pokud je skriptovací proměnná SQL_ENABLE_AGENT nastavena. Proměnná je nastavena ve výchozím nastavení.

  9. Volitelně nainstalujte službu SQL Server Full-Text Search, pokud je proměnná SQL_INSTALL_FULLTEXT nastavena.

  10. Odblokujte port 1433 pro tcp v systémové bráně firewall, který je nezbytný pro připojení k SQL Serveru z jiného systému.

  11. Volitelně můžete nastavit příznaky trasování pro detekci zablokování (vyžaduje odkomentování řádků).

  12. Restartujte SQL Server.

  13. Ověřte, že je SQL Server správně nainstalovaný, přičemž při opakovaných pokusech skrývejte chybové zprávy o připojení.

  14. Pokud jsou nastavené SQL_INSTALL_USER i SQL_INSTALL_USER_PASSWORD, vytvořte nového uživatele správce serveru.

Bezobslužná instalace

Zjednodušte několik bezobslužných instalací a vytvořte samostatný skript Bash, který nastaví správné proměnné prostředí. Můžete odebrat libovolnou z proměnných, které ukázkový skript používá, a vložit je do vlastního skriptu 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>'

Caution

Vaše heslo by mělo splňovat výchozí zásady hesla pro SQL Server. Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.

Pak spusťte skript Bash následujícím způsobem:

. ./my_script_name.sh