Sdílet prostřednictvím


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

platí pro:SQL Server – Linux

Tento ukázkový skript Bash nainstaluje SQL Server na Ubuntu bez interaktivního vstupu. Poskytuje příklady instalace databázového stroje, nástrojů příkazového řádku SQL Serveru, agenta SQL Serveru a provedení kroků po instalaci. Volitelně můžete nainstalovat fulltextové vyhledávání a vytvořit správce.

Spropitné

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.

Požadavky

  • 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 může selhat, pokud je SQL Server pomalý. Důvodem je to, že skript se ukončí s nenulovým stavem. Odebrání přepínače -e na prvním řádku by mohlo tento problém vyřešit.

Důležitý

Proměnná prostředí SA_PASSWORD je zastaralá. Místo toho použijte MSSQL_SA_PASSWORD.

Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . 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 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...
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 [ ! -z $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 [ ! -z $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 traceflag 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 = 1 ]
do
  echo Waiting for SQL Server to start...
  sleep 3s
  /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!

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čení skriptu jako spustitelného souboru

    chmod +x install_sql.sh
    
  4. Spuštění skriptu

    ./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 agenta SQL Serveru, pokud je ve výchozím nastavení nastavená proměnná skriptování SQL_ENABLE_AGENT.

  9. Volitelně nainstalujte vyhledávání SQL Serveru Full-Text, pokud je nastavena proměnná SQL_INSTALL_FULLTEXT.

  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 trasování zablokování (vyžaduje odkomentování řádků).

  12. SQL Server je teď nainstalovaný, aby byl funkční, restartujte proces.

  13. Ověřte, že je SQL Server nainstalován správně, s tím, že budou skryty všechny chybové zprávy.

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

Opatrnost

Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . 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