Exemplo: Script de instalação autônoma do SQL Server para Ubuntu

Aplica-se a:SQL Server – Linux

Este script bash de exemplo instala o SQL Server no Ubuntu sem entrada interativa. 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. Opcionalmente, é possível instalar a pesquisa de texto completo e criar um usuário administrativo.

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 Ubuntu. Para outras informações sobre instalação, confira Diretrizes de instalação do SQL Server em Linux.

Pré-requisitos

  • É necessário ter pelo menos 2 GB de memória para executar o SQL Server em Linux.
  • O sistema de arquivos deve ser XFS ou EXT4. Não há suporte para outros sistemas de arquivos, como BTRFS.
  • Para obter outros requisitos do sistema, confira Requisitos do sistema do SQL Server em Linux.

Exemplo de script

Este exemplo instala o SQL Server 2019 (15.x) no Ubuntu Server 20.04. Se você quiser instalar uma versão diferente do SQL Server ou do Ubuntu Server, altere os caminhos do repositório da Microsoft adequadamente.

Salve o script de exemplo em um arquivo e, em seguida, personalize-o. Você precisará substituir os valores de variável no 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.

O script poderá falhar se o SQL Server for lento ao iniciar. Isso ocorre porque o script sairá com um status diferente de zero. Remover a opção -e na primeira linha pode resolver esse problema.

Importante

A variável de ambiente SA_PASSWORD foi preterida. Use MSSQL_SA_PASSWORD em vez disso.

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

# 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='<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...
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!

Executar o script

Para executar o 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.

  2. Personalize MSSQL_SA_PASSWORD, MSSQL_PID e qualquer uma das outras variáveis que você gostaria de alterar.

  3. Marcar o script como executável

    chmod +x install_sql.sh
    
  4. Executar o script

    ./install_sql.sh
    

Entender o script

A primeira ação que o script bash executa é definir algumas variáveis. Elas podem ser variáveis de script (como o exemplo) ou variáveis de ambiente. A variável MSSQL_SA_PASSWORD é exigida pela instalação do SQL Server, as outras são variáveis personalizadas criadas para o script. O script de exemplo executa as seguintes etapas:

  1. Importe as chaves GPG públicas da Microsoft.

  2. Registre os repositórios da Microsoft no SQL Server e as ferramentas de linha de comando.

  3. Atualizar os repositórios locais.

  4. Instale o SQL Server.

  5. Configure o SQL Server com o MSSQL_SA_PASSWORD e aceite automaticamente o Contrato de Licença de Usuário Final.

  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.

  7. Adicione as ferramentas de linha de comando do SQL Server ao caminho para ter facilidade de uso.

  8. Habilite o SQL Server Agent se a variável de script SQL_ENABLE_AGENT está definida como ativa por padrão.

  9. Opcionalmente, instale a pesquisa de texto completo do SQL Server, se a variável SQL_INSTALL_FULLTEXT estiver definida.

  10. Desbloqueie a porta 1433 para TCP no firewall do sistema, necessária para se conectar ao SQL Server de outro sistema.

  11. Opcionalmente, defina sinalizadores de rastreamento para rastreamento de deadlock (requer remover marca de comentário das linhas).

  12. Agora o SQL Server está instalado; para torná-lo operacional, reinicie o processo.

  13. Verifique se o SQL Server está instalado corretamente ao ocultar mensagens de erro.

  14. Crie um usuário administrador do servidor se SQL_INSTALL_USER e SQL_INSTALL_USER_PASSWORD e ambos estiverem definidos.

Instalação autônoma

Simplifique várias instalações não assistidas e crie um script bash autônomo que define variáveis de ambiente adequadas. É possível remover as variáveis usadas pelo script de exemplo e colocá-las no próprio script bash.

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

Em seguida, execute o script bash da seguinte maneira:

. ./my_script_name.sh