Поделиться через


Пример: скрипт установки SQL Server без участия пользователя для SUSE Linux Enterprise Server

Применимо к:SQL Server в Linux

Этот пример скрипта bash устанавливает SQL Server 2022 (16.x) в SUSE Linux Enterprise Server (SLES) без интерактивных входных данных. В нем демонстрируются примеры установки ядра СУБД, программ командной строки SQL Server и агента SQL Server, а также действий, которые необходимо выполнить после установки. При необходимости вы можете установить компонент полнотекстового поиска и создать пользователя с правами администратора.

Замечание

Начиная с SQL Server 2025 (17.x), SUSE Linux Enterprise Server (SLES) не поддерживается.

Если вам не нужен скрипт автоматической установки, самый быстрый способ установки SQL Server — следовать краткому руководству по SLES. Дополнительные сведения об установке см. в разделе Руководство по установке SQL Server на Linux.

Предварительные условия

  • Для работы с SQL Server на Linux потребуется не менее 2 ГБ памяти.
  • Файловая система должна быть XFS или ext4. Другие файловые системы, такие как BTRFS, не поддерживаются.
  • Сведения о других требованиях к системе см. в статье Требования к системе для SQL Server на Linux.

Внимание

Для SQL Server требуется libsss_nss_idmap0, что репозитории SLES по умолчанию не предоставляют. Этот пакет можно установить из пакета SDK SLES.

Пример скрипта

В этом примере устанавливается SQL Server 2019 (15.x) в SLES версии 15 с пакетом обновления 6 (SP6). Чтобы установить другую версию SQL Server или SLES, измените пути к репозиторию Майкрософт соответствующим образом.

Сохраните пример скрипта в файл и настройте его. Замените значения переменных в скрипте. Также вы можете задать любые переменные скрипта как переменные среды, предварительно удалив их из файла скрипта.

Внимание

Переменная среды SA_PASSWORD является нерекомендуемой. Вместо этого используйте MSSQL_SA_PASSWORD.

Пароль должен соответствовать политике паролей по умолчанию SQL Server. По умолчанию пароль должен быть не короче восьми символов и содержать три вида символов из следующих: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.

#!/bin/bash -e

# Use the following variables to control your install:

# Password for the SA user (required)
MSSQL_SA_PASSWORD='<password>'

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

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-2022.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 SP6 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 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
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 trace flag 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!

Выполнение скрипта

Выполните следующее, чтобы запустить этот сценарий.

  1. Вставьте этот пример в предпочитаемый текстовый редактор и сохраните его под удобным для запоминания именем, например install_sql.sh.

  2. Настройте MSSQL_SA_PASSWORD, MSSQL_PID и любые другие переменные, которые требуется изменить.

  3. Пометьте скрипт как исполняемый файл.

    chmod +x install_sql.sh
    
  4. Запустите скрипт.

    ./install_sql.sh
    

Общие сведения о скрипте

Скрипт bash начинается с задания нескольких переменных. Это могут быть как переменные скрипта, например этого образца, так и переменные среды. Для установки SQL Server требуется MSSQL_SA_PASSWORD переменная. Скрипт использует пользовательские переменные для других переменных.

Этот пример скрипта выполняет следующие операции:

  1. Импортируйте открытые ключи Microsoft GPG.

  2. Регистрация репозиториев Майкрософт для SQL Server и программ командной строки.

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

  4. Установите SQL Server.

  5. Настройте SQL Server с помощью MSSQL_SA_PASSWORD и автоматически примите условия пользовательского лицензионного соглашения.

  6. Автоматически примите лицензионное соглашение для программ командной строки SQL Server, установите их, а затем установите пакет unixODBC-devel.

  7. Для удобства работы добавьте программы командной строки SQL Server в переменную среды PATH.

  8. Включите агент SQL Server, если переменная SQL_ENABLE_AGENT скрипта задана по умолчанию.

  9. Если задана переменная SQL_INSTALL_FULLTEXT, при необходимости установите компонент полнотекстового поиска SQL Server.

  10. В брандмауэре системы разблокируйте порт TCP 1433, который используется для подключения к SQL Server из других систем.

  11. При необходимости установите флаги трассировки для трассировки взаимоблокировок (требует раскомментирование строк).

  12. Теперь установлен SQL Server. Чтобы сделать его операционным, перезапустите процесс.

  13. Проверьте корректность установки SQL Server (при необходимости скрывайте сообщения об ошибках).

  14. Если одновременно заданы переменные SQL_INSTALL_USER и SQL_INSTALL_USER_PASSWORD, создайте нового пользователя с правами администратора сервера.

Установка без присмотра

Упростите несколько автоматических установок, создав самостоятельный bash-скрипт, который задает правильные переменные окружения. Вы можете удалить любые переменные, которые использует пример скрипта, и поместить их в собственный скрипт bash.

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

Внимание

Пароль должен соответствовать политике паролей по умолчанию SQL Server. По умолчанию пароль должен быть не короче восьми символов и содержать три вида символов из следующих: прописные буквы, строчные буквы, десятичные цифры, специальные символы. Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.

Затем запустите скрипт bash следующим образом:

. ./my_script_name.sh