Установка 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.
Запускаем 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:
Выбираем первый пункт — установка Ubuntu Server.
На следующем экране выбираем английский язык:
Можем обновить инсталлёр, а можем и пропустить:
Английская раскладка клавиатуры:
Выбираем стандартную установку Ubuntu Server:
Должен автоматически выбраться сетевой адаптер:
Прокси оставляем пустым:
Происходит тест репозитория:
Соглашаемся с выбранным диском:
На следующем шаге убедимся, что ubuntu-lv занимает весь доступный объем места на диске, иначе отредактируем соответствующим образом:
Далее заполним данные авторизации:
Пропускаем обновление до Ubuntu Pro (расширенное обслуживание безопасности):
Отметим, что нам надо установить OpenSSH server:
Далее нам предложат выбрать популярные снимки для Ubuntu Server, не выбираем ничего, пропускаем:
Начнется установка Ubuntu Server, спустя короткий промежуток времени должны увидеть 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 лицензии
- Запустим транзакцию 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! ***