Образец. Скрипт автоматической установки SQL Server для UbuntuSample: Unattended SQL Server installation script for Ubuntu

Область применения:  ДаSQL Server (только в Linux) НетБаза данных SQL Azure НетХранилище данных SQL AzureНетParallel Data Warehouse APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

В этом примере скрипта Bash выполняется установка SQL Server 2017 в Ubuntu 16.04 без интерактивного ввода.This sample Bash script installs SQL Server 2017 on Ubuntu 16.04 without interactive input. В нем демонстрируются примеры установки ядра СУБД, программ командной строки SQL Server и агента SQL Server, а также действий, которые необходимо выполнить после установки.It provides examples of installing the database engine, the SQL Server command-line tools, SQL Server Agent, and performs post-install steps. При необходимости вы можете установить компонент полнотекстового поиска и создать пользователя с правами администратора.You can optionally install full-text search and create an administrative user.

Совет

Если вам не требуется скрипт автоматической установки, можно воспользоваться самым простым способом установки SQL Server, который описывается в кратком руководстве для Ubuntu.If you do not need an unattended installation script, the fastest way to install SQL Server is to follow the quickstart for Ubuntu. Дополнительные сведения об установке см. в разделе Руководство по установке SQL Server на Linux.For other setup information, see Installation guidance for SQL Server on Linux.

предварительные требованияPrerequisites

  • Для работы с SQL Server на Linux потребуется не менее 2 ГБ памяти.You need at least 2 GB of memory to run SQL Server on Linux.
  • Должна использоваться файловая система XFS или EXT4.The file system must be XFS or EXT4. Другие файловые системы, например BTRFS, не поддерживаются.Other file systems, such as BTRFS, are unsupported.
  • Сведения о других требованиях к системе см. в статье Требования к системе для SQL Server на Linux.For other system requirements, see System requirements for SQL Server on Linux.

Пример скриптаSample 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 curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
repoargs="$(curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
sudo add-apt-repository "${repoargs}"
repoargs="$(curl https://packages.microsoft.com/config/ubuntu/16.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 SQL Server Agent installation:
if [ ! -z $SQL_INSTALL_AGENT ]
then
  echo Installing SQL Server Agent...
  sudo apt-get 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 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!

Запуск скриптаRunning the script

Выполнение скриптаTo run the script

  1. Вставьте этот пример в предпочитаемый текстовый редактор и сохраните его под удобным для запоминания именем, например install_sql.sh.Paste the sample into your favorite text editor and save it with a memorable name, like install_sql.sh.

  2. Настройте MSSQL_SA_PASSWORD, MSSQL_PID и любые другие переменные, которые требуется изменить.Customize MSSQL_SA_PASSWORD, MSSQL_PID, and any of the other variables you'd like to change.

  3. Пометка скрипта исполняемымMark the script as executable

    chmod +x install_sql.sh
    
  4. Выполнение скриптаRun the script

    ./install_sql.sh
    

Основные сведения о скриптеUnderstanding the script

Сначала этот скрипт Bash устанавливает значения некоторых переменных.The first thing the Bash script does is set a few variables. Это могут быть как переменные скрипта, например этого образца, так и переменные среды.These can be either scripting variables, like the sample, or environment variables. Переменная MSSQL_SA_PASSWORD является обязательной для установки SQL Server. Остальные переменные являются пользовательскими и при необходимости задаются для скрипта.The variable MSSQL_SA_PASSWORD is required by SQL Server installation, the others are custom variables created for the script. Этот пример скрипта выполняет следующие операции:The sample script performs the following steps:

  1. Импорт открытых ключей, например Microsoft GPG.Import the public Microsoft GPG keys.

  2. Регистрация репозиториев Майкрософт для SQL Server и программ командной строки.Register the Microsoft repositories for SQL Server and the command-line tools.

  3. Обновление локальных репозиториевUpdate the local repositories

  4. Установка SQL ServerInstall SQL Server

  5. Задайте конфигурацию SQL Server с MSSQL_SA_PASSWORD и автоматически примите условия лицензионного соглашения.Configure SQL Server with the MSSQL_SA_PASSWORD and automatically accept the End-User License Agreement.

  6. Автоматически примите лицензионное соглашение для программ командной строки SQL Server, установите их, а затем установите пакет 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. Для удобства работы добавьте программы командной строки SQL Server в путь.Add the SQL Server command-line tools to the path for ease of use.

  8. Если задана переменная скрипта SQL_INSTALL_AGENT (по умолчанию включена), установите агент SQL Server.Install the SQL Server Agent if the scripting variable SQL_INSTALL_AGENT is set, on by default.

  9. Если задана переменная SQL_INSTALL_FULLTEXT, при необходимости установите компонент полнотекстового поиска SQL Server.Optionally install SQL Server Full-Text search, if the variable SQL_INSTALL_FULLTEXT is set.

  10. В брандмауэре системы разблокируйте порт TCP 1433, который используется для подключения к SQL Server из других систем.Unblock port 1433 for TCP on the system firewall, necessary to connect to SQL Server from another system.

  11. При необходимости установите флаги трассировки для отслеживания состояний взаимоблокировки.Optionally set trace flags for deadlock tracing. (требуется раскомментировать строки)(requires uncommenting the lines)

  12. Установка SQL Server завершена. Прежде чем начать работу с ней, перезапустите процесс.SQL Server is now installed, to make it operational, restart the process.

  13. Проверьте корректность установки SQL Server (при необходимости скрывайте сообщения об ошибках).Verify that SQL Server is installed correctly, while hiding any error messages.

  14. Если одновременно заданы переменные SQL_INSTALL_USER и SQL_INSTALL_USER_PASSWORD, создайте нового пользователя с правами администратора сервера.Create a new server administrator user if SQL_INSTALL_USER and SQL_INSTALL_USER_PASSWORD are both set.

Следующие шагиNext steps

Чтобы оптимизировать многократную автоматическую установку, создайте автономный скрипт Bash, который будет задавать нужные переменные среды.Simplify multiple unattended installs and create a stand-alone Bash script that sets the proper environment variables. Вы можете удалить любые переменные из этого примера скрипта и поместить их в отдельный скрипт 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'

После этого запустите скрипт Bash следующим образом:Then run the Bash script as follows:

. ./my_script_name.sh

Дополнительные сведения об SQL Server на Linux см. в разделе Сведения об SQL Server на Linux.For more information about SQL Server on Linux, see SQL Server on Linux overview.