Установка SAP на домашнем компьютере с использованием Docker

Приветствую всех любителей SAP’а!

10 мая 2022 году мною была написана инструкция по установке SAP на домашнем компьютере. Инструкция получилась весьма объемной и тяжелой для повторения. На текущий день есть куда более быстрый, легкий и удобный способ развернуть у себя дома инстанцию SAP сервера — воспользоваться Docker образом SAP!

Установка сервера для SAP — Ubuntu Server

Разворачивать SAP мы будем на домашней машине. У многих на домашнем компьютере стоит Windows, поэтому процесс начнем с установки виртуальной машины, на которую в последствии установим Ubuntu Server.

Для развертывания виртуальной машины нам понадобиться VirtualBox — https://www.virtualbox.org/wiki/Downloads. Скачиваем актуальную версию и устанавливаем.

Скачиваем актуальный образ Ubuntu Server — https://ubuntu.com/download/server.

Скачиваем Ubuntu 24.04.1 LTS

Запускаем VirtualBox и начинаем процесс создания виртуальной машины.

Назовем виртуальную машину SAP_DOCKER_NICKCODE. Выбираем путь до скачанного образа Ubuntu Server.

Так же выберем тип Linux, подтип Ubuntu и версию Ubuntu 24.04 LTS (Noble Numbat) (64-bit). Ставим галочку Skip Unattended Installation.

Выделяем виртуальной машине 32 GB оперативной памяти (ребята из SAP рекомендуют выделять не менее 16 GB для Docker контейнера, иначе контейнер может просто не запуститься) и 4 ядра процессора:

Создаем виртуальный диск. Динамическое выделение памяти. Выбираем место на диске, где VirtualBox будет размещать данные виртуальной машины.

Выделяем 250 GB места на диске (рекомендуется не менее 150 GB):

Готово, виртуальная машина создана:

Запускаем виртуальную машину:

Начинается загрузка процесса инсталляции Ubuntu Server:

Install Ubuntu Server

Выбираем первый пункт — установка Ubuntu Server.

На следующем экране выбираем английский язык:

Можем обновить инсталлёр, а можем и пропустить:

Английская раскладка клавиатуры:

Выбираем стандартную установку Ubuntu Server:

Должен автоматически выбраться сетевой адаптер:

Прокси оставляем пустым:

Происходит тест репозитория:

Соглашаемся с выбранным диском:

На следующем шаге убедимся, что ubuntu-lv занимает весь доступный объем места на диске, иначе отредактируем соответствующим образом:

Редактирование объема диска

Далее заполним данные авторизации:

username — nick, password — nickcode

Пропускаем обновление до Ubuntu Pro (расширенное обслуживание безопасности):

Отметим, что нам надо установить OpenSSH server:

Далее нам предложат выбрать популярные снимки для Ubuntu Server, не выбираем ничего, пропускаем:

Начнется установка Ubuntu Server, спустя короткий промежуток времени должны увидеть Installation complete!:

Installation complete

Ubuntu установлен, выбираем перезагрузку — Reboot Now.

Настройка сервера для SAP

В процессе установки мы выбрали опцию — установить OpenSSH сервер для более комфортной работы с сервером. Для доступа к виртуальной машине по SSH нам необходимо пробросить соответствующий порт в VirtualBox.

Авторизуемся в виртуальной машине через VirtualBox и смотрим ip адрес машины при помощи команды

ip a

Идем в настройки виртуальной машины в VirtualBox, в раздел Network -> Port Forwarding:

Создаем правило проброса для 22 (SSH) порта:

127.0.0.1:22 - 10.0.2.15:22

Так же сразу пробросим порты, необходимые для работы SAP:

  • 3200: SAPGUI Instance 00
  • 3300: RFC Instance 00
  • 8443: SAP Cloud Connector
  • 30213: SAP HANA MDC Database
  • 50000: AS ABAP HTTP
  • 50001: AS ABAP HTTPS
  • 8000: Internet Communication Manager (ICM) HTTP
  • 44300: HTTPS

В итоге список пробрасываемых портов должен выглядеть так:

Сохраняем.

Сгенерируем SSH ключи

Откроем любую консоль, я воспользуюсь стандартной командной строкой Windows, и вводим команду для подключения к виртуальной машине по SSH:

ssh nick@localhost

Авторизуемся на виртуальной машине по паролю.

На вашей домашней (не виртуальной) машине откроем еще одну консоль и сгенерируем пару ssh ключей, чтобы было удобнее подключаться по SSH:

ssh-keygen

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

Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Введем имя для ключа:

.ssh/nickcode

Далее вы увидите:

Enter passphrase (empty for no passphrase):

Нам предложат ввести парольную фразу для более высокого уровня безопасности. Если мы её введем, то при попытки авторизации с использованием данного ключа система будет запрашивать эту парольную фразу. Так как мы разворачиваем SAP сервер у себя дома, то для удобства оставим это поле пустым.

В указанной папке (C:\Users\Nick\.ssh) должно появится два файла:

  • nickcode — приватный ключ.
  • nickcode.pub — публичный ключ.

Откроем консоль с доступом к вашему виртуальному серверу и создадим папку .ssh (хотя она уже должна быть создана):

mkdir -p ~/.ssh

Откроем публичный ключ в блокноте, скопируем содержимое и выполним команду:

echo "public_key" >> ~/.ssh/authorized_keys

где public_key — содержимое публичного ключа из файла nickcode.pub.

Должно получиться как-то так:

echo "ssh-rsa AAAAB3NzaC1yc2…" >> ~/.ssh/authorized_keys

Откроем файл конфигурации демона SSH:

sudo nano /etc/ssh/sshd_config

Найдем в нем директиву PasswordAuthentication, раскомментируем данную строку и установим значение «no«. Так же найдем директиву PubkeyAuthentication, раскомментируем и установим значение «yes«:

Сохраним файл.

Откроем файл конфигурации /etc/ssh/sshd_config.d/50-cloud-init.conf:

sudo nano /etc/ssh/sshd_config.d/50-cloud-init.conf

Директиве PasswordAuthentication установим значение «no»:

Сохраним файл и перезагрузим сервис sshd:

sudo systemctl restart ssh

Проверим корректность всех наших настроек. Откроем консоль и попробуем войти на сервер используя одну лишь команду.

Если вы используете PowerShell, то команда будет выглядеть так:

ssh -i $env:USERPROFILE\.ssh\nickcode nick@localhost

, где $env:USERPROFILE\.ssh\nickcode — это путь до приватного ssh ключа.

Для CMD:

ssh -i %USERPROFILE%\.ssh\nickcode nick@localhost

Авторизация должна осуществиться без каких-либо паролей.

Установим Docker

Для установки Docker воспользуемся инструкцией https://docs.docker.com/engine/install/ubuntu/ .

Способов установки несколько, но, пожалуй, один из самых удобных — универсальный скрипт установки Docker:

curl https://get.docker.com| sudo bash

После выполнения скрипта запустим две команды:

sudo usermod -aG docker $USER

newgrp docker

И проверим корректность установки Docker:

docker run hello-world

“Hello from Docker!” – Docker установлен успешно!

Внесем изменения в файл hosts

Контейнер SAP считает, что имя хоста vhcala4hci. При попытке открыть какой-либо веб интерфейс SAP будет пытаться открыть хост vhcala4hci:

По такой ссылке на личной машине мы ничего не сможем открыть, нам надо сделать связь имени vhcala4hci и нашего компьютера (127.0.0.1).

Откроем блокнот от имени Администратора:

Откроем файл C:\Windows\System32\drivers\etc\hosts:

Добавим в конец файла на новой строчке строку:

127.0.0.1 vhcala4hci

Сохраняем файл hosts.

Установка SAP на виртуальной машине при помощи Docker

Скачаем Docker образ Sap’а. Для этого перейдем на Docker Hub sapse, скопируем и выполним команду для скачивания образа:

После скачивания проверим текущие закачанные образы:

docker images

Где первым в списке значится скачанный образ SAP.

Осталось только запустить контейнер:

docker run --stop-timeout 3600 -i --name a4h -h vhcala4hci -p 3200:3200 -p 3300:3300 -p 8443:8443 -p 30213:30213 -p 50000:50000 -p 50001:50001 sapse/abap-cloud-developer-trial:ABAPTRIAL_2022_SP01 -skip-limits-check

Начнется процесс разворачивания docker контейнера с SAP’ом. Спустя минут 10-15 получаем сообщение об успешном старте всех сервисов:

После того, как была выполнена данная команда, был создан контейнер с именем a4h. Для повторного запуска контейнера с SAP’ом можно использовать команду:

docker start -ai a4h

Для остановки контейнера:

docker stop -t 7200 a4h

Откроем SAP Logon и настроим новое подключение:

  • Описание — Nickcode SAP Docker A4H
  • Сервер приложений — 127.0.0.1
  • Номер инстанции — 00 (если прокинуть порт контейнера 3200 как порт 3201 (-p 3201:3200), то вы сможете подключиться к SAPGUI с номером инстанции 01 вместо стандартного 00)
  • ИдСистемы — A4H

Подключаемся.

В нашем распоряжении есть 3 пользователя:

  • Системный пользователь SAP*. Client — 000. SAP* — пользователь, используемый в основном для задач системного администрирования. Он существует во всех клиентах SAP по умолчанию. Имеет неограниченные права доступа к системе.
  • Системный пользователь DDIC. Client — 000. DDIC — это пользователь необходимый для установки системы, обновлений и административных задач, связанных со словарем данных SAP. Он также участвует в управлении такими объектами, как таблицы, представления и структуры данных. DDIC — единственный пользователь, которому разрешено входить в систему SAP во время обновления.
  • Пользователь DEVELOPER — пользователь для разработки. Client — 001.

Входим под системным пользователем SAP*.

Client: 000.

Пароль (для версии ABAP Cloud Developer Trial 2022, SP01) для всех пользователей — ABAPtr2022#01.

Получение SAP лицензии

  1. Запустим транзакцию SLICENSE:

Скопируем свой Hardware Key.

2. Перейдем по ссылке https://go.support.sap.com/minisap/#/minisap.

Выбираем A4H — SAP NetWeaver AS ABAP 7.4 and above (Linux / SAP HANA).

Ниже на странице заполним Personal Data:

Соглашаемся с правилами и жмем на Generate:

Будет предложено скачать файл A4H_Multiple.txt:

3. Вернемся в транзакцию SLICENSE и установим новую лицензию:

2 новые лицензии SAP успешно установлены:

Удалить старые лицензии возможно под пользователем DEVELOPER (001).

Готово, рабочая инстанция SAP поднята и готова к работе!

Проверим доступ к какому-нибудь веб интерфейсу. Для этого зайдем в систему под пользователем DEVELOPER (001).

Откроем транзакцию SE93, где выполним транзакцию /UI2/FLP:

Вводим логин и пароль.

Попадаем в SAP Fiori Launchpad:

Нам удалось установить SAP сервер на персональный компьютер буквально двумя командами — скачивание образа и запуск контейнера. Большая часть данной статьи — это подготовка к установке, нежели чем сама установка :).

О дополнительных возможностях читайте на официальной странице SAP в Docker hub — https://hub.docker.com/r/sapse/abap-cloud-developer-trial.

*** Have fun! ***