Exemple : Script d'installation de SQL Server sans assistance pour Ubuntu
S’applique à : SQL Server - Linux
Cet exemple de script bash installe SQL Server sur Ubuntu sans entrée interactive. Il fournit des exemples d'installation du moteur de base de données, des outils en ligne de commande SQL Server, SQL Server Agent et exécute les étapes de post-installation. Vous pouvez également installer la recherche en texte intégral et créer un utilisateur administratif.
Conseil
Si vous n'avez pas besoin d'un script d'installation sans assistance, le moyen le plus rapide d'installer SQL Server consiste à suivre le démarrage rapide pour Ubuntu. Pour d'autres informations d'installation, voir Conseils d’installation pour SQL Server sur Linux.
Prérequis
- Vous avez besoin d'au moins 2 Go de mémoire pour exécuter SQL Server sur Linux.
- Le système de fichiers doit être XFS ou EXT4. Les autres systèmes de fichiers, tels que BTRFS, ne sont pas pris en charge.
- Pour les autres configurations système requises, voir Configuration système requise pour SQL Server sur Linux.
Exemple de script
Cet exemple installe SQL Server 2019 (15.x) sur le serveur Ubuntu 20.04. Si vous souhaitez installer une autre version de SQL Server ou d’Ubuntu Server, modifiez les chemins d’accès au référentiel Microsoft en conséquence.
Enregistrez le script type dans un fichier, puis personnalisez-le. Vous devez remplacer les valeurs des variables dans le script. Vous pouvez également définir n'importe laquelle des variables de script comme une variable d'environnement, à condition de la supprimer du fichier script.
Le script peut échouer si le démarrage de SQL Server prend trop de temps. Cela est dû au fait que le script s’arrête avec un état différent de zéro. La suppression du commutateur -e
sur la première ligne pourrait résoudre ce problème.
Important
La variable d’environnement SA_PASSWORD
est dépréciée. Utilisez MSSQL_SA_PASSWORD
à la place.
#!/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!
Exécuter le script
Pour exécuter le script :
Collez l'exemple dans votre éditeur de texte préféré, puis enregistrez-le sous un nom facile à retenir, comme
install_sql.sh
.Personnalisez
MSSQL_SA_PASSWORD
,MSSQL_PID
, et toutes les autres variables que vous souhaitez modifier.Marquer le script comme exécutable
chmod +x install_sql.sh
Exécuter le script
./install_sql.sh
Comprendre le script
La première tâche du script bash est de définir quelques variables. Ces variables peuvent être soit de variables de script, comme l’exemple, soit de variables d'environnement. La variable MSSQL_SA_PASSWORD
est requise par le programme d’installation de SQL Server. Les autres sont des variables personnalisées créées pour le script. L’exemple de script effectue les étapes suivantes :
Importer les clés publiques Microsoft GPG.
Enregistrer les référentiels Microsoft pour SQL Server et les outils en ligne de commande.
Mettre à jour les référentiels locaux
Installez SQL Server.
Configurez SQL Server avec
MSSQL_SA_PASSWORD
et acceptez automatiquement le Contrat de licence de l'utilisateur final.Acceptez automatiquement le Contrat de licence de l'utilisateur final pour les outils en ligne de commande SQL Server, installez ces outils, puis installez le package
unixodbc-dev
.Ajoutez les outils en ligne de commande SQL Server au chemin d'accès pour en faciliter l'utilisation.
Installez SQL Server Agent si la variable de script
SQL_ENABLE_AGENT
est activée par défaut.Si la variable
SQL_INSTALL_FULLTEXT
est définie, vous pouvez installer la recherche en texte intégral SQL Server.Débloquez le port 1433 pour TCP sur le pare-feu système pour permettre la connexion à SQL Server depuis un autre système.
Si vous le souhaitez, définissez des indicateurs de trace pour le traçage d’interblocage (nécessite de supprimer les marques de commentaire des lignes).
SQL Server est maintenant installé. Pour le rendre opérationnel, redémarrez le processus.
Vérifiez que SQL Server est installé correctement, tout en masquant les messages d'erreur.
Créez un utilisateur administrateur du serveur si les valeurs
SQL_INSTALL_USER
etSQL_INSTALL_USER_PASSWORD
sont toutes deux définies.
Installation sans assistance
Simplifiez plusieurs installations sans assistance et créez un script bash autonome qui définit les variables d'environnement appropriées. Vous pouvez supprimer n'importe laquelle des variables utilisées dans l'exemple de script et les placer dans leur propre 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>'
Lancez ensuite le script bash comme suit :
. ./my_script_name.sh