Exemplo: Script de instalação autônoma do SQL Server para o Red Hat Enterprise LinuxSample: Unattended SQL Server installation script for Red Hat Enterprise Linux

APLICA-SE A: simSQL Server (somente para o Linux) nãoBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Este script Bash de exemplo instala o SQL Server 2017 no RHEL (Red Hat Enterprise Linux) sem entrada interativa.This sample Bash script installs SQL Server 2017 on Red Hat Enterprise Linux (RHEL) without interactive input. Ele fornece exemplos de como instalar o mecanismo de banco de dados, as ferramentas de linha de comando do SQL Server, o SQL Server Agent e executa etapas de pós-instalação.It provides examples of installing the database engine, the SQL Server command-line tools, SQL Server Agent, and performs post-install steps. Opcionalmente, é possível instalar a pesquisa de texto completo e criar um usuário administrativo.You can optionally install full-text search and create an administrative user.

Dica

Se você não precisar de um script de instalação autônoma, a maneira mais rápida de instalar o SQL Server será seguir o início rápido para Red Hat.If you do not need an unattended installation script, the fastest way to install SQL Server is to follow the quickstart for Red Hat. Para outras informações sobre instalação, confira Diretrizes de instalação do SQL Server em Linux.For other setup information, see Installation guidance for SQL Server on Linux.

PrerequisitesPrerequisites

  • É necessário ter pelo menos 2 GB de memória para executar o SQL Server em Linux.You need at least 2 GB of memory to run SQL Server on Linux.
  • O sistema de arquivos deve ser XFS ou EXT4.The file system must be XFS or EXT4. Não há suporte para outros sistemas de arquivos, como BTRFS.Other file systems, such as BTRFS, are unsupported.
  • Para obter outros requisitos do sistema, confira Requisitos do sistema do SQL Server em Linux.For other system requirements, see System requirements for SQL Server on Linux.

Exemplo de scriptSample script

Salve o script de exemplo em um arquivo e, em seguida, para personalizá-lo, substitua os valores de variável no script.Save the sample script to a file and then to customize it, replace the variable values in the script. Você também pode definir qualquer uma das variáveis de script como variáveis de ambiente, contanto que você remova-as do arquivo de 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 -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_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='<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
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
  sudo systemctl restart mssql-server
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!

Executar o scriptRunning the script

Para executar o scriptTo run the script

  1. Cole o exemplo em seu editor de texto favorito e salve-o com um nome fácil de memorizar, como install_sql.sh.Paste the sample into your favorite text editor and save it with a memorable name, like install_sql.sh.

  2. Personalize MSSQL_SA_PASSWORD, MSSQL_PID e qualquer uma das outras variáveis que você gostaria de alterar.Customize MSSQL_SA_PASSWORD, MSSQL_PID, and any of the other variables you'd like to change.

  3. Marcar o script como executávelMark the script as executable

    chmod +x install_sql.sh
    
  4. Executar o scriptRun the script

    ./install_sql.sh
    

Noções básicas sobre o scriptUnderstanding the script

A primeira coisa que o script Bash faz é definir algumas variáveis.The first thing the Bash script does is set a few variables. Elas podem ser variáveis de script (como o exemplo) ou variáveis de ambiente.These can be either scripting variables, like the sample, or environment variables. A variável MSSQL_SA_PASSWORD é exigida pela instalação do SQL Server, as outras são variáveis personalizadas criadas para o script.The variable MSSQL_SA_PASSWORD is required by SQL Server installation, the others are custom variables created for the script. O script de exemplo executa as seguintes etapas:The sample script performs the following steps:

  1. Importe as chaves GPG públicas da Microsoft.Import the public Microsoft GPG keys.

  2. Registre os repositórios da Microsoft no SQL Server e as ferramentas de linha de comando.Register the Microsoft repositories for SQL Server and the command-line tools.

  3. Atualizar os repositórios locaisUpdate the local repositories

  4. Instalar o SQL ServerInstall SQL Server

  5. Configure o SQL Server com o MSSQL_SA_PASSWORD e aceite automaticamente o Contrato de Licença de Usuário Final.Configure SQL Server with the MSSQL_SA_PASSWORD and automatically accept the End-User License Agreement.

  6. Aceite automaticamente o Contrato de Licença de Usuário Final para as ferramentas de linha de comando do SQL Server, instale-as e instale o pacote unixodbc-dev.Automatically accept the End-User License Agreement for the SQL Server command-line tools, install them, and install the unixodbc-dev package.

  7. Adicione as ferramentas de linha de comando do SQL Server ao caminho para ter facilidade de uso.Add the SQL Server command-line tools to the path for ease of use.

  8. Instale o SQL Server Agent se a variável de script SQL_INSTALL_AGENT estiver definida como ativa por padrão.Install the SQL Server Agent if the scripting variable SQL_INSTALL_AGENT is set, on by default.

  9. Opcionalmente, instale a pesquisa de texto completo do SQL Server, se a variável SQL_INSTALL_FULLTEXT estiver definida.Optionally install SQL Server Full-Text search, if the variable SQL_INSTALL_FULLTEXT is set.

  10. Desbloqueie a porta 1433 para TCP no firewall do sistema, necessária para se conectar ao SQL Server de outro sistema.Unblock port 1433 for TCP on the system firewall, necessary to connect to SQL Server from another system.

  11. Opcionalmente, defina sinalizadores de rastreamento para o rastreamento de deadlock.Optionally set trace flags for deadlock tracing. (requer a remoção da marca de comentário das linhas)(requires uncommenting the lines)

  12. Agora o SQL Server está instalado; para torná-lo operacional, reinicie o processo.SQL Server is now installed, to make it operational, restart the process.

  13. Verifique se o SQL Server está instalado corretamente ao ocultar mensagens de erro.Verify that SQL Server is installed correctly, while hiding any error messages.

  14. Crie um usuário administrador do servidor se SQL_INSTALL_USER e SQL_INSTALL_USER_PASSWORD e ambos estiverem definidos.Create a new server administrator user if SQL_INSTALL_USER and SQL_INSTALL_USER_PASSWORD are both set.

Próximas etapasNext steps

Simplifique várias instalações autônomas e crie um script Bash autônomo que define variáveis de ambiente adequadas.Simplify multiple unattended installs and create a stand-alone Bash script that sets the proper environment variables. É possível remover as variáveis usadas pelo script de exemplo e colocá-las no próprio 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'

Em seguida, execute o script Bash da seguinte maneira:Then run the Bash script as follows:

. ./my_script_name.sh

Para saber mais sobre o SQL Server em Linux, confira Visão geral do SQL Server em Linux.For more information about SQL Server on Linux, see SQL Server on Linux overview.