サンプル:SUSE Linux Enterprise Server 用の無人 SQL Server インストール スクリプトSample: Unattended SQL Server installation script for SUSE Linux Enterprise Server

適用対象: yesSQL Server (Linux のみ) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server (Linux only) noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

このサンプル Bash スクリプトでは、対話式の入力なしで SUSE Linux Enterprise Server (SLES) v12 SP2 に SQL Server 2017 をインストールします。This sample Bash script installs SQL Server 2017 on SUSE Linux Enterprise Server (SLES) v12 SP2 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 をインストールする最も簡単な方法は SLES のクイックスタートに従うことです。If you do not need an unattended installation script, the fastest way to install SQL Server is to follow the quickstart for SLES. その他の設定情報については、SQL Server on Linux のインストール ガイダンスを参照してください。For other setup information, see Installation guidance for SQL Server on Linux.

前提条件Prerequisites

  • SQL Server on Linux を実行するには、少なくとも 2 GB のメモリが必要です。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 on Linux のシステム要件に関する記事を参照してください。For other system requirements, see System requirements for SQL Server on Linux.

重要

SQL Server 2017 には libsss_nss_idmap0 が必要です。これは既定の SLES リポジトリでは提供されていません。SQL Server 2017 requires libsss_nss_idmap0, which is not provided by the default SLES repositories. SLES v12 SP2 SDK からインストールできます。You can install it from the SLES v12 SP2 SDK.

サンプル スクリプト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 zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server-2017.repo
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/prod.repo 
sudo zypper --gpg-auto-import-keys refresh

#Add the SLES v12 SP2 SDK to obtain libsss_nss_idmap0
sudo SUSEConnect -p sle-sdk/12.2/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 SQL Server Agent installation:
if [ ! -z $SQL_INSTALL_AGENT ]
then
  echo Installing SQL Server Agent...
  sudo zypper 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 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 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!

スクリプトの実行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_PASSWORDMSSQL_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 とコマンドライン ツール用の Microsoft リポジトリを登録します。Register the Microsoft repositories for SQL Server and the command-line tools.

  3. ローカル リポジトリを更新するUpdate the local repositories

  4. SQL Server をインストールするInstall SQL Server

  5. MSSQL_SA_PASSWORD を使用して SQL Server を構成し、エンドユーザー使用許諾契約に自動的に同意します。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. システム ファイアウォールで、別のシステムから SQL Server に接続するために必要な TCP 用のポート 1433 のブロックを解除します。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_USERSQL_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 on Linux の詳細については、Live Share の概要に関する記事を参照してください。For more information about SQL Server on Linux, see SQL Server on Linux overview.