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:
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
.Přizpůsobte
MSSQL_SA_PASSWORD
,MSSQL_PID
a kteroukoli z dalších proměnných, které chcete změnit.Označení skriptu jako spustitelného souboru
chmod +x install_sql.sh
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:
Importujte veřejné klíče Microsoft GPG.
Zaregistrujte úložiště Microsoftu pro SQL Server a nástroje příkazového řádku.
Aktualizujte místní úložiště.
Nainstalujte SQL Server.
Nakonfigurujte SQL Server pomocí
MSSQL_SA_PASSWORD
a automaticky přijměte licenční smlouvu End-User.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
.Přidejte do cesty nástroje příkazového řádku SQL Serveru, abyste je mohli snadno používat.
Povolte agenta SQL Serveru, pokud je ve výchozím nastavení nastavená proměnná skriptování
SQL_ENABLE_AGENT
.Volitelně nainstalujte vyhledávání SQL Serveru Full-Text, pokud je nastavena proměnná
SQL_INSTALL_FULLTEXT
.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.
Volitelně můžete nastavit příznaky trasování pro trasování zablokování (vyžaduje odkomentování řádků).
SQL Server je teď nainstalovaný, aby byl funkční, restartujte proces.
Ověřte, že je SQL Server nainstalován správně, s tím, že budou skryty všechny chybové zprávy.
Pokud jsou nastavené
SQL_INSTALL_USER
iSQL_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