Esempio: Script di installazione automatica di SQL Server per Red Hat Enterprise LinuxSample: Unattended SQL Server installation script for Red Hat Enterprise Linux

QUESTO ARGOMENTO SI APPLICA A: noSQL Server su WindowssìSQL Server su LinuxnoDatabase SQL di AzurenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: noSQL Server on WindowsyesSQL Server on LinuxnoAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Questo script di esempio Bash installa 2017 di SQL Server su Red Hat Enterprise Linux (RHEL) senza input interattivo.This sample Bash script installs SQL Server 2017 on Red Hat Enterprise Linux (RHEL) without interactive input. Fornisce esempi di installazione del motore di database, gli strumenti da riga di comando di SQL Server, SQL Server Agent e vengono eseguiti i passaggi di post-installazione.It provides examples of installing the database engine, the SQL Server command-line tools, SQL Server Agent, and performs post-install steps. Facoltativamente, è possibile installare la ricerca full-text e creare un utente amministratore.You can optionally install full-text search and create an administrative user.

Suggerimento

Se non è necessario uno script di installazione automatica, il modo più rapido per installare SQL Server consiste nel seguire il esercitazione introduttiva di Red Hat.If you do not need an unattended installation script, the fastest way to install SQL Server is to follow the quick start tutorial for Red Hat. Per altre informazioni sull'installazione, vedere Guida all'installazione per SQL Server in Linux.For other setup information, see Installation guidance for SQL Server on Linux.

PrerequisitiPrerequisites

  • È necessario almeno 3,25 GB di memoria per l'esecuzione di SQL Server in Linux.You need at least 3.25 GB of memory to run SQL Server on Linux.
  • Il file system deve essere XFS o EXT4.The file system must be XFS or EXT4. Altri file System, ad esempio BTRFS, non sono supportati.Other file systems, such as BTRFS, are unsupported.
  • Per altri requisiti di sistema, vedere requisiti di sistema per SQL Server in Linux.For other system requirements, see System requirements for SQL Server on Linux.

Script di esempioSample script

Salvare lo script di esempio in un file e quindi per personalizzarlo, sostituire i valori di variabile nello script.Save the sample script to a file and then to customize it, replace the variable values in the script. È possibile anche impostare le variabili di scripting come variabili di ambiente, come rimuoverli dal file di script.You can also set any of the scripting variables as environment variables, as long as you remove them from the script file.

#!/bin/bash

# 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 curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo

echo Installing SQL Server...
sudo yum 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 yum 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

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

# Configure firewall to allow TCP port 1433:
echo Configuring firewall to allow traffic on port 1433...
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

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

Esecuzione dello scriptRunning the script

Per eseguire lo scriptTo run the script

  1. Incollare l'esempio in un editor di testo e salvarlo con un nome facili da ricordare, ad esempio install_sql.sh.Paste the sample into your favorite text editor and save it with a memorable name, like install_sql.sh.

  2. Personalizzare MSSQL_SA_PASSWORD, MSSQL_PIDe una delle variabili da modificare.Customize MSSQL_SA_PASSWORD, MSSQL_PID, and any of the other variables you'd like to change.

  3. Contrassegnare lo script come file eseguibileMark the script as executable

    chmod +x install_sql.sh
    
  4. Eseguire lo scriptRun the script

    ./install_sql.sh
    

La comprensione dello scriptUnderstanding the script

La prima cosa lo script Bash è impostare alcune variabili.The first thing the Bash script does is set a few variables. Può trattarsi di variabili di scripting, come nell'esempio, o le variabili di ambiente.These can be either scripting variables, like the sample, or environment variables. La variabile MSSQL_SA_PASSWORD è obbligatorio dall'installazione di SQL Server, gli altri sono variabili personalizzate create per lo script.The variable MSSQL_SA_PASSWORD is required by SQL Server installation, the others are custom variables created for the script. Lo script di esempio esegue i passaggi seguenti:The sample script performs the following steps:

  1. Importare le chiavi pubbliche di Microsoft GPG.Import the public Microsoft GPG keys.

  2. Registrare i repository di Microsoft SQL Server e gli strumenti da riga di comando.Register the Microsoft repositories for SQL Server and the command-line tools.

  3. Aggiornare il repository localeUpdate the local repositories

  4. Installare SQL ServerInstall SQL Server

  5. Configurare SQL Server con il MSSQL_SA_PASSWORD e accettare automaticamente il contratto di licenza dell'utente finale.Configure SQL Server with the MSSQL_SA_PASSWORD and automatically accept the End-User License Agreement.

  6. Accettare il contratto di licenza dell'utente finale per gli strumenti da riga di comando di SQL Server, installarli e installare il pacchetto unixodbc-dev automaticamente.Automatically accept the End-User License Agreement for the SQL Server command-line tools, install them, and install the unixodbc-dev package.

  7. Aggiungere il percorso per la facilità di utilizzo di strumenti da riga di comando di SQL Server.Add the SQL Server command-line tools to the path for ease of use.

  8. Installare SQL Server Agent se la variabile di scripting SQL_INSTALL_AGENT , in per impostazione predefinita.Install the SQL Server Agent if the scripting variable SQL_INSTALL_AGENT is set, on by default.

  9. Se lo si desidera installare la ricerca Full-Text di SQL Server, se la variabile SQL_INSTALL_FULLTEXT è impostata.Optionally install SQL Server Full-Text search, if the variable SQL_INSTALL_FULLTEXT is set.

  10. Sbloccare la porta 1433 per TCP del firewall di sistema necessarie per connettersi a SQL Server da un altro sistema.Unblock port 1433 for TCP on the system firewall, necessary to connect to SQL Server from another system.

  11. Facoltativamente, impostare i flag di traccia per la traccia di deadlock.Optionally set trace flags for deadlock tracing. (richiede rimuovendo le righe)(requires uncommenting the lines)

  12. È ora installato SQL Server, per rendere operativa, riavviare il processo.SQL Server is now installed, to make it operational, restart the process.

  13. Verificare che SQL Server sia installato correttamente, nascondendolo eventuali messaggi di errore.Verify that SQL Server is installed correctly, while hiding any error messages.

  14. Creare un nuovo utente amministratore server se SQL_INSTALL_USER e SQL_INSTALL_USER_PASSWORD sono entrambe impostate.Create a new server administrator user if SQL_INSTALL_USER and SQL_INSTALL_USER_PASSWORD are both set.

Passaggi successiviNext steps

Semplificare più installazioni automatiche e creare uno script Bash autonomo che consente di impostare le variabili di ambiente appropriate.Simplify multiple unattended installs and create a stand-alone Bash script that sets the proper environment variables. È possibile rimuovere una delle variabili, lo script di esempio utilizza e inserirli nei propri script Bash.You can remove any of the variables the sample script uses and put them in their own Bash script.

#!/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 lo script Bash nel modo seguente:Then run the Bash script as follows:

. ./my_script_name.sh

Per ulteriori informazioni su SQL Server in Linux, vedere SQL Server in Linux Panoramica.For more information about SQL Server on Linux, see SQL Server on Linux overview.