Практикум RHEL 8 Beta: Устанавливаем Microsoft SQL Server +6



Microsoft SQL Server 2017 был доступен для полноценного использования под RHEL 7 с октября 2017 года, и при работе над RHEL 8 Beta Red Hat тесно сотрудничала с Microsoft, чтобы повысить производительность и обеспечить поддержку большего числа языков программирования и прикладных фреймворков, предложить разработчикам более широкий выбор доступных инструментов для работы над их следующим приложением.



Лучший способ понять внесенные изменения и их влияние на вашу работу – попробовать их в деле, но RHEL 8 все еще находится в бета-версии, и Microsoft SQL Server 2017 не поддерживается для использования в реальных приложениях. Что же делать?

Если вы хотите опробовать SQL Server на бета-версии RHEL 8, этот пост поможет вам запустить его, но вы не должны использовать его в производственном окружении, пока версия Red Hat Enterprise Linux 8 не станет общедоступной, а Microsoft не предоставит свой официально поддерживаемый пакет для установки.

Одна из основных задач Red Hat Enterprise Linux заключается в создании стабильного, однородного окружения для запуска сторонних приложений. Для этого в RHEL реализована совместимость приложений на уровне отдельных API и интерфейсов ядра. Когда мы переходим к новому большому релизу, обычно существуют специальные различия в именах пакетов, новых версий библиотек и новых утилит, которые могут вызвать сложности при запуске уже существующих приложений, собранных для предыдущего релиза. Поставщики программного обеспечения могут, следуя рекомендациям Red Hat, создавать исполняемые файлы в Red Hat Enterprise Linux 7, которые будут работать в Red Hat Enterprise Linux 8, но работа с пакетами – это другое дело. Пакет программного обеспечения, созданный для Red Hat Enterprise Linux 7, не будет поддерживаться в Red Hat Enterprise Linux 8.

Сервер SQL Server 2017 на Red Hat Enterprise Linux 7 использует python2 и OpenSSL 1.0. Следующие шаги позволят получить рабочее окружение, которое совместимо с этими двумя компонентами, которые уже мигрировали на более свежие версии в RHEL 8 Beta. Включение старых версий было сделано Red Hat специально для сохранения обратной совместимости.

sudo  yum install python2
sudo  yum install compat-openssl10

Теперь необходимо разобраться с исходными настройками python в этой системе. Red Hat Enterprise Linux 8 может одновременно работать с python2 и python3, но по умолчанию в системе отсутствует /usr/bin/python. Нам необходимо сделать python2 интерпретатором по умолчанию, чтобы SQL Server 2017 мог видеть /usr/bin/python там, где он ожидает его увидеть. Для этого необходимо выполнить следующую команду:

sudo alternatives —config python

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

Существует три различных исполняемых файла для работы с python:

 Selection    Command
———————————————————————-
*  1         /usr/libexec/no-python
+ 2           /usr/bin/python2
  3         /usr/bin/python3
Enter to keep the current selection[+], or type selection number: 

Тут нужно выбрать второй вариант, после чего будет создана символьная ссылка с /usr/bin/python2 на /usr/bin/python.

Теперь можно продолжить конфигурирование системы для работы с программным репозиторием Microsoft SQL Server 2017 с помощью команды curl:

sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

Затем следует загрузить установочные файлы SQL Server 2017 с помощью новой функции загрузки в yum. Сделать это нужно таким образом, чтобы можно было выполнить установку без необходимости разрешать зависимости:

sudo yum download mssql-server

Теперь установим сервер без разрешения зависимостей с помощью команды rpm:

sudo rpm -Uvh —nodeps mssql-server*rpm

После этого можно продолжить обычную установку SQL Server, как это описано в руководстве Microsoft «Быстрый старт: установка SQL Server и создание базы данных в Red Hat» с шага №3:

3. После завершения установки пакета выполните команду mssql-conf setup и следуйте подсказкам для установки пароля системного администратора (SA) и выбора вашей версии.


sudo /opt/mssql/bin/mssql-conf setup 

После завершения установки можно проверить версию установленного SQL сервера с помощью команды:

# yum list —installed | grep mssql-server

Поддержит контейнеры


С выпуском SQL Server 2019 установка обещает стать еще проще, так как эта версия, как ожидается, будет доступна в RHEL в виде контейнера. Сервер SQL Server 2019 уже доступен в бета-версии. Чтобы попробовать его в RHEL 8 Beta потребуется всего три шага:

Во-первых, создадим директорию базы данных, где будут храниться все наши SQL данные. Для этого примера мы будем использовать директорию /var/mssql.

sudo mkdir /var/mssql
sudo chmod 755 /var/mssql

Теперь необходимо загрузить контейнер с SQL 2019 Beta из репозитория Microsoft Container Repository командой:

sudo podman pull mcr.microsoft.com/mssql/rhel/server:2019-CTP2.2

Наконец, необходимо сконфигурировать SQL сервер. В данном случае мы установим пароль администратора (SA) для базы данных под названием sql1, работающей с портами 1401 — 1433.

sudo podman run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=<YourStrong!Passw0rd>'  \ 
—name 'sql1' -p 1401:1433 -v /var/mssql:/var/opt/mssql:Z -d \ 
mcr.microsoft.com/mssql/rhel/server:2019-CTP2.2

Более подробную информацию о podman и контейнерах в Red Hat Enterprise Linux 8 Beta можно найти здесь.

Работает за двоих


Попробовать связку RHEL 8 Beta и SQL Server 2017 можно как с помощью традиционной установки, так и с помощью установки контейнерного приложения. В любом случае, теперь в вашем распоряжении будет работающий экземпляр SQL Server, и можно заняться наполнением базы данных или изучать доступные в RHEL 8 Beta инструменты для создания стека приложений, автоматизации процесса настройки или оптимизации производительности.

В начале мая обязательно послушайте выступление Боба Уорда (Bob Ward), старшего архитектора в подразделении Microsoft Database Systems Group, на саммите Red Hat Summit 2019, где будет обсуждаться развертывание современной платформы для работы с данными на базе SQL Server 2019 и Red Hat Enterprise Linux 8 Beta.

А уже 8 мая ожидается официальный релиз, открывающих использование SQL Server в реальных приложениях.

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (4):

  1. SeyranGV
    /#20074850

    Интересно, а как MS SQL будет лицензироваться?

  2. CodeImp
    /#20075988

    Мне лично интересен вопрос: «Зачем?».
    Зачем запускать mssql на red hat. С таким же успехом можно поднять виртуалки с виндой или контейнер какой нибудь. Последнее время Microsoft позволяет перемешать Linux и Windows приложения в компот. Зачем? Чтобы добавить проблем администратору? Подскажите, может я не в курсе чего?

    • vsantonov
      /#20077702

      А по моему все идет в правильном направлении. Уже сейчас в Windows встроенна полноценная среда linux, не работают разве что низкоуровневые вызовы вроде контейнеризации. И если вместо WS Core с его чисто виндовыми приложениями у меня будет стоять RH8 в котором будет крутиться MS SQL и какие то еще контейнеры рядом я буду только рад. Другой вопрос, как это админить через AD, придется пользоваться уже линуксовыми средствами которые не так удобны, но я думаю и их допилят как минимум для интерпрайз среды.

      P.S. А самой MS это надо для того чтобы в облаке Azure можно было поднять любую службу не разливая для этого копию винды. Все кто разворачивал в облаках Windows поймут о чем я, это очень долгий процесс по сравнению с разворачиванием cloud-native линукса.

  3. CodeImp
    /#20079120

    И ещё интересно, RHEL 8 планируется распространять для двух архитектрур x86_64 и ARM 64.
    Вопрос: MS SQL на rhel 8 будет работать под ARM 64?
    В этом случае появляется вариант сэкономить на хостинге, как я понимаю.