Создание SAP-программы в Yandex Cloud
Вы научитесь настраивать сервер с установленной средой SAP и напишете первую программу. В ней будет реализована выгрузка существующих в системе пользователей в виде таблицы.
Чтобы создать SAP-программу в Yandex Cloud:
- Подготовьте облако к работе.
- Создайте ВМ для SAP.
- Подготовьте файловую систему ВМ.
- Подготовьте конфигурацию установки.
- Установите SAP.
- Настройте SAP.
- Проверьте работу программы.
Если созданные ресурсы вам больше не нужны, удалите их.
Перед началом работы
Перед работой нужно зарегистрироваться в Yandex Cloud и создать платежный аккаунт:
- Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь, если вы еще не зарегистрированы.
- На странице биллинга убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость установки SAP входят:
- плата за постоянно запущенную виртуальную машину (см. тарифы Yandex Compute Cloud);
- плата за использование динамического или статического внешнего IP-адреса (см. тарифы Yandex Virtual Private Cloud).
Создайте ВМ для SAP
Создайте ВМ с публичным адресом:
-
На странице каталога в консоли управления нажмите кнопку Создать ресурс и выберите Виртуальная машина.
-
В поле Имя введите имя виртуальной машины:
vhcalnplci
. На этот hostname завязан скрипт установки SAP. -
Выберите зону доступности
ru-central1-a
. -
В блоке Выбор образа/загрузочного диска перейдите на вкладку Cloud Marketplace и нажмите кнопку Посмотреть больше. В открывшемся окне выберите образ SLES for SAP 15 SP2.
-
В блоке Диски выберите тип загрузочного диска
SSD
и укажите размер — 40 ГБ. -
Нажмите Добавить диск, чтобы добавить дополнительный диск.
- Задайте имя диска.
- Выберите тип
HDD
. - Укажите размер — 90 ГБ.
- Нажмите Добавить.
-
В блоке Вычислительные ресурсы:
- Выберите платформу: Intel Ice Lake.
- Укажите необходимое количество vCPU и объем RAM:
- vCPU — 2.
- Гарантированная доля vCPU — 100%.
- RAM — 8 ГБ.
-
В блоке Сетевые настройки:
-
Укажите идентификатор подсети или выберите облачную сеть из списка.
Если сети нет, нажмите Создать сеть и создайте ее:
- В открывшемся окне укажите имя сети и каталог, в котором она будет создана.
- Вы можете выбрать функцию Создать подсети для автоматического создания подсетей.
- Нажмите Создать.
У каждой сети должна быть как минимум одна подсеть. Если подсети нет, создайте ее, выбрав Добавить подсеть.
-
В поле Публичный адрес выберите способ назначения адреса Автоматически.
-
-
В блоке Доступ укажите данные для доступа на виртуальную машину:
- В поле Логин введите имя пользователя.
- В поле SSH-ключ введите открытую часть SSH-ключа. Создать пару ключей SSH для подключения к виртуальной машине можно по инструкции.
-
Нажмите Создать ВМ.
Подготовьте файловую систему ВМ
Подготовьте файловую структуру созданной ВМ к установке SAP.
-
Подключитесь по протоколу SSH к созданной виртуальной машине с помощью PuTTY.
-
Переключитесь в режим root, чтобы получить привилегии суперпользователя:
sudo su
-
Посмотрите список всех дисков:
lsblk
Результат:
vda 254:0 0 40G 0 disk ├─vda1 254:1 0 4M 0 part └─vda2 254:2 0 40G 0 part / vdb 254:16 0 90G 0 disk
Где:
vda
— загрузочный диск.vdb
— диск для данных.
-
Создайте на диске для данных (
vdb
) два раздела: 20 ГБ под дистрибутив и 70 ГБ под SAP.-
Чтобы управлять разделами жесткого диска, запустите утилиту
fdisk
:fdisk /dev/vdb
Если при вызове утилиты
fdisk
появляется ошибкаcommand not found
, добавьтеfdisk
вPath
:PATH=/sbin:$PATH
-
Чтобы добавить первый раздел, введите команду
n
и нажмите Enter. -
Чтобы выбрать тип по умолчанию
primary
, нажмите Enter. -
Чтобы выбрать номер по умолчанию
1
, нажмите Enter. -
Чтобы выбрать первый сектор по умолчанию
2048
, нажмите Enter. -
Укажите размер
+20G
и нажмите Enter. -
Добавьте второй раздел аналогичным образом. Не указывайте его размер на последнем шаге. По умолчанию он займет все оставшееся пространство — 70 ГБ.
-
Чтобы сохранить созданные разделы, введите команду
w
и нажмите Enter.Результат:
Welcome to fdisk (util-linux 2.33.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xb58ce40a. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-182452223, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-182452223, default 182452223): +20G Created a new partition 1 of type 'Linux' and of size 20 GiB. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (2-4, default 2): First sector (41945088-182452223, default 41945088): Last sector, +/-sectors or +/-size{K,M,G,T,P} (41945088-182452223, default 182452223): Created a new partition 2 of type 'Linux' and of size 70 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
-
Проверьте структуру дисков:
lsblk
Результат:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 254:0 0 40G 0 disk ├─vda1 254:1 0 4M 0 part └─vda2 254:2 0 40G 0 part / vdb 254:16 0 90G 0 disk ├─vdb1 254:17 0 20G 0 part └─vdb2 254:18 0 70G 0 part
-
-
Настройте на разделах
vdb1
иvdb2
файловую системуext4
:mkfs.ext4 /dev/vdb1 mkfs.ext4 /dev/vdb2
Результат:
mke2fs 1.43.8 (1-Jan-2018) Creating filesystem with 5242880 4k blocks and 1310720 inodes Filesystem UUID: e878b21b-da84-42f9-ba9f-b6ad3c6edab6 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done ... mke2fs 1.43.8 (1-Jan-2018) Creating filesystem with 17563392 4k blocks and 4390912 inodes Filesystem UUID: 14be2468-6a99-4178-a77b-26096c3fcad4 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
-
Создайте директории под дистрибутив и SAP Application Server. Примонтируйте к ним разделы
vdb1
иvdb2
:mkdir /usr/sap mkdir /distr mount /dev/vdb1 /distr mount /dev/vdb2 /usr/sap
-
Чтобы монтирование восстанавливалось при перезагрузке, отредактируйте файл
/etc/fstab
:vi /etc/fstab
Приведите его к виду:
LABEL=ROOT / xfs defaults 0 1 /dev/vdb1 /distr ext4 defaults 1 1 /dev/vdb2 /usr/sap ext4 defaults 1 1
Настройте параметры установки
Добавьте установочные файлы SAP на виртуальную машину и настройте конфигурацию для дальнейшей инсталляции.
-
Скачайте 11 архивов с установочными файлами SAP NetWeaver AS ABAP Developer Edition 7.52 SP04 и извлеките их содержимое в одну папку на локальном компьютере.
-
Сохраните текущую сессию подключения к виртуальной машине в PuTTY. Название можно указать любое.
-
Установите и запустите программу WinSCP.
-
Импортируйте в WinSCP настройки из сохраненной сессии в PuTTY.
- В окне
Login
нажмите Tools. - Выберите Import Sites.
- В поле
Import from
выберите PuTTY и отметьте сохраненную ранее сессию.
- В окне
-
Подключитесь к виртуальной машине через WinSCP.
- Выберите сессию, импортированную из PuTTY.
- Нажмите Login.
- Введите имя пользователя на ВМ.
-
Импортируйте в каталог
/distr
на виртуальной машине установочные файлы SAP, которые вы извлекли из загруженных ранее архивов.- В левом окне откройте папку с извлеченными файлами SAP.
- Выделите их и нажмите Upload.
- Укажите каталог для импорта —
/distr/*.*
на виртуальной машине.
Для импорта файлов нужно быть владельцем каталога
/distr
. Другой вариант — подключиться через WinSCP как пользователь с root-правами или настроить использование sudo при входе в систему. -
На виртуальной машине установите и запустите UUIDD. Это демон UUID — universally unique identifiers. Он требуется для работы SAP:
zypper install uuidd service uuidd start
-
Проверьте наличие библиотек
libaio
иlibaio1
:rpm -qa | grep libaio rpm -qa | grep libaio1
В ответе будут указаны версии библиотек, которые предустановлены на дистрибутиве.
-
Узнайте внутренний IP-адрес виртуальной машины:
ip addr show
Результат:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether d0:0d:11:31:ee:a6 brd ff:ff:ff:ff:ff:ff inet 10.0.0.29/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::d20d:11ff:fe31:eea6/64 scope link valid_lft forever preferred_lft forever
-
Добавьте внутренний IP-адрес в файл
/etc/hosts
.-
Откройте файл:
vi /etc/hosts
-
Добавьте в него строку вида:
<inet> vhcalnplci vhcalnplci.ru-central1.internal.
Используйте значение
inet
из блокаeth0
.Результат:
127.0.0.1 localhost 10.0.0.29 vhcalnplci vhcalnplci.ru-central1.internal
-
-
Проверьте имя хоста:
hostname
Результат:
vhcalnplci
Установите SAP
-
Измените разрешения на папку с установочными файлами SAP:
chmod -R 777 /distr
-
Перейдите в каталог
/distr
:cd /distr
-
Запустите скрипт для установки SAP:
./install.sh
-
Согласитесь с условиями лицензионного соглашения.
-
Задайте мастер-пароль для пользователей, которые будут созданы при установке SAP.
Требования к паролю:
- Не менее 7 символов на латинице.
- Содержит заглавные буквы и цифры.
- Не используются специальные символы.
-
Дождитесь завершения установки.
При установке может появиться сообщение об ошибке:
Abort execution because of Step returns modlib.jslib.caughtException Error: sapinst has finished with an error code, please find logs in /tmp/sapinst_instdir Error code: 20
Ошибка связана с истекшим сроком лицензии. Чтобы устранить ее:
- Скачайте файл
SAP ABAP AS Part License
для SAP NetWeaver AS ABAP Developer Edition 7.52 SP04 с официального сайта. - Распакуйте его и перенести в директорию
server/TAR/x86_64/
на виртуальной машине. Можно сделать это с помощью программы WinSCP. - Заново запустите файл
./install.sh
, чтобы установить SAP.
- Скачайте файл
Запустите и настройте SAP
-
Установите на компьютер фронтенд-клиент SAP Logon.
-
Запустите SAP Logon и настройте подключение к виртуальной машине.
- Application Server — публичный IPv4-адрес.
- Instance number —
00
. - System ID —
NPL
.
После входа в SAP в левой части экрана вы увидите меню пользователя SAP Easy Access. Это специфичная для пользователя точка входа. Меню пользователя содержит только те элементы, которые необходимы для выполнения ежедневных задач.
Настройка SAP выполняется через коды транзакций. Они связаны с функциями в системе SAP. Коды транзакций необходимо вводить в командной строке SAP. Для быстрого доступа можно добавить их в закладки.
-
Поменяйте стандартные пароли в целях безопасности.
- Через интерфейс SAP Easy Access запустите транзакцию
SU01
. - Перейдите в раздел
Logon Data
. - Выберите пользователя, пароль которого хотите изменить.
- Введите новый пароль.
- Через интерфейс SAP Easy Access запустите транзакцию
Обновите лицензию
Чтобы продолжить работу с SAP, необходимо обновить лицензию.
- Через интерфейс SAP Easy Access запустите транзакцию
SLICENSE
. - Скопируйте значение поля
Active Hardware Key
. - Откройте страницу SAP с лицензионными ключами.
- Выберите пункт
NPL — SAP NetWeaver 7.x (Sybase ASE)
. - Укажите, как к вам обращаться. Впишите имя, фамилию, e-mail и значение
Active Hardware Key
, которое скопировали ранее. - Примите условия лицензионного соглашения и скачайте файл с лицензией
NPL.tx
. - Перенесите скачанный файл с лицензией на виртуальную машину и добавьте в транзакцию
SLICENSE
.
Создайте первую программу
Чтобы проверить работоспособность системы, создайте простую программу, которая будет выгружать список пользователей.
-
Авторизуйтесь под учетной записью
DEVELOPER
. -
Запустите транзакцию
SE38
. Это программаABAP Editor
. -
Назовите программу
ZTEST
. -
Добавьте код:
TYPE-POOLS: slis. *&---------------------------------------------------------------------* *& Data Declaration *&---------------------------------------------------------------------* DATA: it_usr01 TYPE TABLE OF USR01. DATA: it_fieldcat TYPE slis_t_fieldcat_alv, wa_fieldcat TYPE slis_fieldcat_alv.` *&---------------------------------------------------------------------* *& START-OF-SELECTION` *&---------------------------------------------------------------------* START-OF-SELECTION. *Fetch data from the database SELECT * FROM USR01 INTO TABLE it_usr01. *Build field catalog wa_fieldcat-fieldname = 'MANDT'. wa_fieldcat-seltext_m = 'MANDT'. APPEND wa_fieldcat TO it_fieldcat. wa_fieldcat-fieldname = 'BNAME'. wa_fieldcat-seltext_m = 'USER'. APPEND wa_fieldcat TO it_fieldcat. * display ALV list CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING it_fieldcat = it_fieldcat TABLES t_outtab = it_usr01 EXCEPTIONS program_error = 1 OTHERS = 2
Результат:
| MANDT| USER | | -----| ----------- | | 001 | BWDEVELOPER | | 001 | DDIC | | 001 | DEVELOPER | | 001 | SAP* |
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы:
- удалите ВМ;
- удалите статический публичный IP-адрес, если вы его зарезервировали специально для этого проекта.