Пример: скрипт автоматической установки SQL Server для Ubuntu
Область применения: SQL Server — Linux
В этом примере скрипта Bash выполняется установка SQL Server в Ubuntu без интерактивного ввода. В нем демонстрируются примеры установки ядра СУБД, программ командной строки SQL Server и агента SQL Server, а также действий, которые необходимо выполнить после установки. При необходимости вы можете установить компонент полнотекстового поиска и создать пользователя с правами администратора.
Совет
Если вам не нужен скрипт автоматической установки, самый быстрый способ установки SQL Server — выполнить краткое руководство по Ubuntu. Дополнительные сведения об установке см. в разделе Руководство по установке SQL Server на Linux.
Необходимые компоненты
- Для работы с SQL Server на Linux потребуется не менее 2 ГБ памяти.
- Должна использоваться файловая система XFS или EXT4. Другие файловые системы, например BTRFS, не поддерживаются.
- Сведения о других требованиях к системе см. в статье Требования к системе для SQL Server на Linux.
Пример скрипта
В этом примере устанавливается SQL Server 2019 (15.x) на Ubuntu Server 20.04. Чтобы установить другую версию SQL Server или Ubuntu Server, измените пути к репозиторию Майкрософт соответствующим образом.
Сохраните пример скрипта в файл, а затем измените его. Необходимо заменить значения переменных в скрипте. Также вы можете задать любые переменные скрипта как переменные среды, предварительно удалив их из файла скрипта.
Скрипт может завершиться ошибкой, если SQL Server запускается слишком долго. Это связано с тем, что скрипт завершает работу с ненулевым состоянием. Удаление переключателя -e
в первой строке может устранить эту проблему.
Внимание
Переменная среды SA_PASSWORD
является нерекомендуемой. Вместо этого используйте MSSQL_SA_PASSWORD
.
#!/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!
Выполнение скрипта
Выполните следующее, чтобы запустить этот сценарий.
Вставьте этот пример в предпочитаемый текстовый редактор и сохраните его под удобным для запоминания именем, например
install_sql.sh
.Настройте
MSSQL_SA_PASSWORD
,MSSQL_PID
и любые другие переменные, которые требуется изменить.Пометка скрипта исполняемым
chmod +x install_sql.sh
Выполнение скрипта
./install_sql.sh
Общие сведения о скрипте
Сначала этот скрипт Bash устанавливает значения некоторых переменных. Это могут быть как переменные скрипта, например этого образца, так и переменные среды. Переменная MSSQL_SA_PASSWORD
требуется при установке SQL Server. Другие — это пользовательские переменные, созданные для скрипта. Этот пример скрипта выполняет следующие операции:
Импорт открытых ключей, например Microsoft GPG.
Регистрация репозиториев Майкрософт для SQL Server и программ командной строки.
Обновление локальных репозиториев
Установите SQL Server.
Задайте конфигурацию SQL Server с
MSSQL_SA_PASSWORD
и автоматически примите условия лицензионного соглашения.Автоматически примите лицензионное соглашение для программ командной строки SQL Server, установите их, а затем установите пакет
unixodbc-dev
.Для удобства работы добавьте программы командной строки SQL Server в путь.
Включите агент SQL Server, если переменная
SQL_ENABLE_AGENT
скрипта задана по умолчанию.Если задана переменная
SQL_INSTALL_FULLTEXT
, при необходимости установите компонент полнотекстового поиска SQL Server.В брандмауэре системы разблокируйте порт TCP 1433, который используется для подключения к SQL Server из других систем.
При необходимости установите флаги трассировки для трассировки взаимоблокировок (требует раскомментирование строк).
Установка SQL Server завершена. Прежде чем начать работу с ней, перезапустите процесс.
Проверьте корректность установки SQL Server (при необходимости скрывайте сообщения об ошибках).
Если одновременно заданы переменные
SQL_INSTALL_USER
иSQL_INSTALL_USER_PASSWORD
, создайте нового пользователя с правами администратора сервера.
Автоматическая установка
Чтобы оптимизировать многократную автоматическую установку, создайте автономный скрипт Bash, который будет задавать нужные переменные среды. Вы можете удалить любые переменные из этого примера скрипта и поместить их в отдельный скрипт 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>'
После этого запустите скрипт Bash следующим образом:
. ./my_script_name.sh