Dela via


Exempel: Obevakat SQL Server-installationsskript för SUSE Linux Enterprise Server

gäller för:SQL Server – Linux

Det här bash-exempelskriptet installerar SQL Server på SUSE Linux Enterprise Server (SLES) utan interaktiva indata. Den innehåller exempel på hur du installerar databasmotorn, SQL Server-kommandoradsverktygen, SQL Server Agent och utför steg efter installationen. Du kan också installera fulltextsökning och skapa en administrativ användare.

Tips

Om du inte behöver ett obevakat installationsskript är det snabbaste sättet att installera SQL Server att följa snabbstart för SLES. Mer information om installation finns i Installationsvägledning för SQL Server på Linux.

Förutsättningar

  • Du behöver minst 2 GB minne för att köra SQL Server på Linux.
  • Filsystemet måste vara XFS- eller EXT4-. Andra filsystem, till exempel BTRFS, stöds inte.
  • Andra systemkrav finns i Systemkrav för SQL Server på Linux.

Viktig

SQL Server kräver libsss_nss_idmap0, som inte tillhandahålls av standard-SLES-lagringsplatserna. Du kan installera den från SLES SDK.

Exempelskript

I det här exemplet installeras SQL Server 2019 (15.x) på SLES v15 SP3. Om du vill installera en annan version av SQL Server eller SLES ändrar du Sökvägarna för Microsoft-lagringsplatsen i enlighet med detta.

Spara exempelskriptet i en fil och anpassa det sedan. Du måste ersätta variabelvärdena i skriptet. Du kan också ange någon av skriptvariablerna som miljövariabler, så länge du tar bort dem från skriptfilen.

Viktig

Miljövariabeln SA_PASSWORD är inaktuell. Använd MSSQL_SA_PASSWORD i stället.

Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.

#!/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 zypper addrepo -fc https://packages.microsoft.com/config/sles/15/mssql-server-2019.repo
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/15/prod.repo
sudo zypper --gpg-auto-import-keys refresh

#Add the SLES v15 SP3 SDK to obtain libsss_nss_idmap0
sudo SUSEConnect -p sle-sdk/15.3/x86_64

echo Installing SQL Server...
sudo zypper 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 zypper 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 zypper install -y mssql-server-fts
fi

# Configure firewall to allow TCP port 1433:
echo Configuring SuSEfirewall2 to allow traffic on port 1433...
sudo SuSEfirewall2 open INT TCP 1433
sudo SuSEfirewall2 stop
sudo SuSEfirewall2 start

# 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!

Kör skriptet

Så här kör du skriptet:

  1. Klistra in exemplet i din favorittextredigerare och spara det med ett minnesvärt namn, till exempel install_sql.sh.

  2. Anpassa MSSQL_SA_PASSWORD, MSSQL_PIDoch någon av de andra variabler som du vill ändra.

  3. Markera skriptet som körbart

    chmod +x install_sql.sh
    
  4. Kör skriptet

    ./install_sql.sh
    

Förstå skriptet

Det första bash-skriptet gör är att ange några variabler. Dessa variabler kan vara antingen skriptvariabler, t.ex. exempelvariabler eller miljövariabler. Variabeln MSSQL_SA_PASSWORD är nödvändig för installationen av SQL Server. De andra är anpassade variabler som skapats för skriptet. Exempelskriptet utför följande steg:

  1. Importera de offentliga Microsoft GPG-nycklarna.

  2. Registrera Microsoft-lagringsplatserna för SQL Server och kommandoradsverktygen.

  3. Uppdatera de lokala lagringsplatserna.

  4. Installera SQL Server.

  5. Konfigurera SQL Server med MSSQL_SA_PASSWORD och godkänn automatiskt licensavtalet för End-User.

  6. Godkänn automatiskt End-User licensavtalet för SQL Server-kommandoradsverktygen, installera dem och installera unixODBC-devel-paketet.

  7. Lägg till SQL Server-kommandoradsverktygen i sökvägen för enkel användning.

  8. Aktivera SQL Server-agenten om skriptvariabeln SQL_ENABLE_AGENT har angetts som standard.

  9. Du kan också installera SQL Server Full-Text sökning om variabeln SQL_INSTALL_FULLTEXT har angetts.

  10. Avblockera port 1433 för TCP i systembrandväggen, som krävs för att ansluta till SQL Server från ett annat system.

  11. Du kan ange spårningsflaggor för dödlägesanalys (kräver att raderna avkommenteras).

  12. SQL Server har nu installerats, för att göra den i drift, starta om processen.

  13. Kontrollera att SQL Server är korrekt installerat och dölj eventuella felmeddelanden.

  14. Skapa en ny serveradministratörsanvändare om både SQL_INSTALL_USER och SQL_INSTALL_USER_PASSWORD har angetts.

Obevakad installation

Förenkla flera obevakade installationer och skapa ett fristående bash-skript som anger rätt miljövariabler. Du kan ta bort någon av variablerna som exempelskriptet använder och placera dem i ett eget bash-skript.

#!/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>'

Försiktighet

Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.

Kör sedan bash-skriptet på följande sätt:

. ./my_script_name.sh