Esempio: Script di installazione automatica di SQL Server per SUSE Linux Enterprise Server

Si applica a:yes SQL Server (tutte le versioni supportate) - Linux

Questo script bash di esempio installa SQL Server in SUSE Linux Enterprise Server (SLES) senza input interattivo. Fornisce esempi di installazione delle motore di database, degli strumenti da riga di comando SQL Server, SQL Server Agent ed esegue passaggi di post-installazione. Facoltativamente, è possibile installare la ricerca full-text e creare un utente amministratore.

Suggerimento

Se non è necessario uno script di installazione automatica, il modo più rapido per installare SQL Server consiste nel seguire la guida di avvio rapido per SLES. Per altre informazioni sull'installazione, vedere Linee guida per l'installazione di SQL Server in Linux.

Prerequisiti

  • Per eseguire SQL Server in Linux sono necessari almeno 2 GB di memoria.
  • Il file system deve essere XFS o EXT4. Altri file system, come BTRFS, non sono supportati.
  • Per altri requisiti di sistema, vedere Requisiti di sistema per SQL Server su Linux.

Importante

SQL Server richiede libsss_nss_idmap0, che non è fornito dai repository SLES predefiniti. È possibile installarlo dall'SDK SLES.

Script di esempio

Questo esempio installa SQL Server 2019 (15.x) in SLES v15 SP3. Se si vuole installare una versione diversa di SQL Server o SLES, modificare di conseguenza i percorsi del repository Microsoft.

Salvare lo script di esempio in un file e quindi personalizzarlo. È necessario sostituire i valori delle variabili nello script. È anche possibile impostare qualsiasi variabile di scripting come variabile di ambiente, purché venga rimossa dal file di script.

#!/bin/bash -e

# Use the following variables to control your install:

# Password for the SA user (required)
MSSQL_SA_PASSWORD='<YourStrong!Passw0rd>'

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

# Install SQL Server Agent (recommended)
SQL_INSTALL_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='<YourStrong!Passw0rd>'

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 SQL Server Agent installation:
if [ ! -z $SQL_INSTALL_AGENT ]
then
  echo Installing SQL Server Agent...
  sudo zypper install -y mssql-server-agent
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!

Eseguire lo script

Per eseguire lo script:

  1. Incollare l'esempio nell'editor di testo preferito e salvarlo con un nome facile da ricordare, ad esempio install_sql.sh.

  2. Personalizzare MSSQL_SA_PASSWORD, MSSQL_PID e tutte le altre variabili che si vuole modificare.

  3. Contrassegnare lo script come eseguibile

    chmod +x install_sql.sh
    
  4. Eseguire lo script

    ./install_sql.sh
    

Comprendere lo script

La prima cosa che lo script bash esegue è impostare alcune variabili. Queste variabili possono essere variabili di scripting, ad esempio o variabili di ambiente. La variabile MSSQL_SA_PASSWORD è obbligatoria per l'installazione di SQL Server, mentre le altre sono variabili personalizzate create per lo script. Lo script di esempio esegue le operazioni seguenti:

  1. Importare le chiavi di Microsoft GPG pubbliche.

  2. Registrare i repository Microsoft per SQL Server e gli strumenti da riga di comando.

  3. Aggiornare i repository locali.

  4. Installare SQL Server.

  5. Configurare SQL Server con MSSQL_SA_PASSWORD e accettare automaticamente il contratto di licenza con l'utente finale.

  6. Accettare automaticamente il contratto di licenza End-User per gli strumenti da riga di comando SQL Server, installarli e installare il unixodbc-dev pacchetto.

  7. Aggiungere gli strumenti da riga di comando di SQL Server al percorso per facilitarne l'uso.

  8. Installare SQL Server Agent se la variabile di scripting SQL_INSTALL_AGENT è abilitata per impostazione predefinita.

  9. Facoltativamente, installare la ricerca full-text di SQL Server, se la variabile SQL_INSTALL_FULLTEXT è impostata.

  10. Sbloccare la porta 1433 per TCP sul firewall di sistema, necessaria per connettersi a SQL Server da un altro sistema.

  11. Facoltativamente, impostare i flag di traccia di traccia per deadlock (richiede uncommenting delle righe).

  12. SQL Server ora è installato. Per renderlo operativo, riavviare il processo.

  13. Verificare che SQL Server sia installato correttamente, nascondendo eventuali messaggi di errore.

  14. Creare un nuovo utente amministratore del server se SQL_INSTALL_USER e SQL_INSTALL_USER_PASSWORD sono entrambi impostati.

Passaggi successivi

Semplificare più installazioni automatiche e creare uno script bash autonomo che imposta le variabili di ambiente appropriate. È possibile rimuovere una delle variabili usate dallo script di esempio e inserirle nel proprio script bash.

#!/bin/bash
export MSSQL_SA_PASSWORD='<YourStrong!Passw0rd>'
export MSSQL_PID='evaluation'
export SQL_INSTALL_AGENT='y'
export SQL_INSTALL_USER='<Username>'
export SQL_INSTALL_USER_PASSWORD='<YourStrong!Passw0rd>'
export SQL_INSTALL_AGENT='y'

Eseguire quindi lo script bash come segue:

. ./my_script_name.sh

Per altre informazioni su SQL Server in Linux, vedere la panoramica di SQL Server in Linux.