Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
  • Blog
  • Pricing
  • Documentation
Yandex project
© 2025 Yandex.Cloud LLC
Yandex Compute Cloud
  • Yandex Container Solution
    • All tutorials
    • Configuring time synchronization using NTP
    • Autoscaling an instance group to process messages from a queue
    • Updating an instance group under load
    • Deploying Remote Desktop Gateway
    • Getting started with Packer
    • Transferring logs from a VM to Yandex Cloud Logging
    • Building a VM image with infrastructure tools using Packer
    • Migrating data to Yandex Cloud using Hystax Acura
    • Fault protection with Hystax Acura
    • VM backups using Hystax Acura
    • Deploying a fault-tolerant architecture with preemptible VMs
    • Configuring a fault-tolerant architecture in Yandex Cloud
    • Creating a budget trigger that invokes a function to stop a VM
    • Creating triggers that invoke a function to stop a VM and send a Telegram notification
    • Creating a Python web application with Flask
    • Creating an SAP program in Yandex Cloud
    • Deploying a Minecraft server in Yandex Cloud
    • Automating image builds using Jenkins and Packer
    • Creating test VMs via GitLab CI
    • High-performance computing on preemptible VMs
    • Configuring an SFTP server based on CentOS 7
    • Deploying GlusterFS in high availability mode
    • Deploying GlusterFS in high performance mode
    • Backing up to Object Storage with Bacula
    • Building a CI/CD pipeline in GitLab using serverless products
    • Implementing a secure high-availability network infrastructure with a dedicated DMZ based on the Check Point NGFW
    • Cloud infrastructure segmentation with the Check Point next-generation firewall
    • Configuring a secure GRE tunnel over IPsec
    • Creating a bastion host
    • Implementing fault-tolerant scenarios for NAT VMs
    • Creating a tunnel between two subnets using OpenVPN Access Server
    • Creating an external table from a Object Storage bucket table using a configuration file
    • Setting up network connectivity between BareMetal and Virtual Private Cloud subnets
    • Working with snapshots in Managed Service for Kubernetes
    • Launching the DeepSeek-R1 language model in a GPU cluster
    • Running a vLLM library with the Gemma 3 language model on a VM with GPU
  • Access management
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • Getting started
  • Required paid resources
  • Create an SAP VM
  • Set up your VM file system
  • Configure SAP installation
  • Install SAP
  • Start and configure SAP
  • Update your license
  • Create your first program
  • How to delete the resources you created
  1. Tutorials
  2. Creating an SAP program in Yandex Cloud

Creating an SAP program in Yandex Cloud

Written by
Roman Gorbenko
Updated at May 14, 2025
  • Getting started
    • Required paid resources
  • Create an SAP VM
  • Set up your VM file system
  • Configure SAP installation
  • Install SAP
  • Start and configure SAP
    • Update your license
  • Create your first program
  • How to delete the resources you created

You will learn to configure an SAP server and write your first program exporting a list of system users in tabular format.

To create an SAP program in Yandex Cloud:

  1. Get your cloud ready.
  2. Create an SAP VM.
  3. Set up your VM file system.
  4. Configure SAP installation.
  5. Install SAP.
  6. Configure SAP.
  7. Make sure the program runs correctly.

If you no longer need the resources you created, delete them.

Getting startedGetting started

Sign up in Yandex Cloud and create a billing account:

  1. Navigate to the management console and log in to Yandex Cloud or register a new account.
  2. On the Yandex Cloud Billing page, make sure you have a billing account linked and it has the ACTIVE or TRIAL_ACTIVE status. If you do not have a billing account, create one and link a cloud to it.

If you have an active billing account, you can navigate to the cloud page to create or select a folder for your infrastructure to operate in.

Learn more about clouds and folders.

Required paid resourcesRequired paid resources

The cost of an SAP installation includes:

  • Fee for a continuously running VM (see Yandex Compute Cloud pricing).
  • Fee for a dynamic or static public IP address (see Yandex Virtual Private Cloud pricing).

Create an SAP VMCreate an SAP VM

Create a VM and give it a public IP address:

Management console
  1. On the folder dashboard of the management console, click Create resource and select Virtual machine instance.

  2. Under Boot disk image, select the SLES for SAP 15 SP2 image.

  3. Under Location, select the ru-central1-d availability zone.

  4. Under Disks and file storages:

    • Select the SSD boot disk type and specify the disk size: 40 GB.
    • Create a secondary disk:
      • Click Add.
      • Select the disk type: SSD.
      • Specify the disk size: 24 GB.
      • Click Add disk.
  5. Under Computing resources, navigate to the Custom tab and specify the required platform, number of vCPUs, and the amount of RAM:

    • Platform: Intel Ice Lake
    • vCPU: 2
    • Guaranteed vCPU performance: 100%
    • RAM: 8 GB
  6. Under Network settings:

    • In the Subnet field, select the network and subnet to connect your VM to. If the required network or subnet is not there, create it.
    • Under Public IP address, leave Auto to assign a random external IP address to your VM from the Yandex Cloud pool. Alternatively, select a static address from the list if you reserved one.
  7. Under Access, select SSH key and specify the VM access credentials:

    • Under Login, enter the username. Do not use root or other reserved usernames. To run commands requiring root privileges, use the sudo command.
    • In the SSH key field, select the SSH key saved in your organization user profile.

      If there are no saved SSH keys in your profile, or you want to add a new key:

      • Click Add key.
      • Enter a name for the SSH key.
      • Upload or paste the contents of the public key file. You need to create a key pair for the SSH connection to a VM yourself.
      • Click Add.

      The SSH key will be added to your organization user profile.

      If users cannot add SSH keys to their profiles in the organization, the added public SSH key will only be saved to the user profile of the VM being created.

  8. Under General information, specify the VM name: vhcalnplci that will be used in the SAP installation script.

  9. Click Create VM.

Set up your VM file systemSet up your VM file system

Create a file system structure for SAP installation.

  1. Connect to your VM over SSH via PuTTY.

  2. Switch to the root account:

    sudo su
    
  3. List all available disks:

    lsblk
    

    Result:

    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
    

    Where:

    • vda: Boot disk
    • vdb: Data disk
  4. Create two partitions on the data disk: 20 GB for the installation files and 70 GB for the SAP application server.

    1. Run fdisk to manage partitions:

      fdisk /dev/vdb
      

      If you get command not found, add fdisk to Path:

      PATH=/sbin:$PATH
      
    2. To create a new partition, type n and press Enter.

    3. Press Enter to select the primary partition type.

    4. Press Enter to accept the default partition number: 1.

    5. Press Enter to accept the default first sector: 2048.

    6. Type +20G to set the partition size and press Enter.

    7. Repeat these steps to add another partition. On the last step, do not type anything and press Enter. The partition will use the remaining available space: 70 GB.

    8. Type w and press Enter to save the changes.

      Result:

      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.
      
    9. List all available disks:

      lsblk
      

      Result:

      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
      
  5. Create an ext4 file system on vdb1 and vdb2 partitions:

    mkfs.ext4 /dev/vdb1
    mkfs.ext4 /dev/vdb2
    

    Result:

    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
    
  6. Create directories for installation files and the SAP application server and mount them to vdb1 and vdb2 partitions, respectively:

    mkdir /usr/sap
    mkdir /distr
    mount /dev/vdb1 /distr
    mount /dev/vdb2 /usr/sap
    
  7. For automatic remounting after reboot, edit the /etc/fstab file:

    vi /etc/fstab
    

    Make it look like this:

    LABEL=ROOT  /  xfs  defaults  0  1
    /dev/vdb1 /distr ext4 defaults 1 1
    /dev/vdb2 /usr/sap ext4 defaults 1 1
    

Configure SAP installationConfigure SAP installation

Copy the installation files to your VM and configure SAP installation.

  1. Download 11 SAP NetWeaver AS ABAP Developer Edition 7.52 SP04 archives on your computer and unpack them.

  2. Save your current VM PuTTY session under any name you want.

  3. Install and run WinSCP.

  4. Import the saved PuTTY session into WinSCP.

    1. In the Login window, click Tools.
    2. Select Import Sites.
    3. In the Import from field, select PuTTY and then select the previously saved session.
  5. Connect to your VM via WinSCP.

    1. Select the session imported from PuTTY.
    2. Click Login.
    3. Enter your VM username.
  6. Import SAP installation files to your VM /distr folder.

    1. In the left-hand window, open the folder where you unpacked SAP files.
    2. Select all files and click Upload.
    3. Set /distr/*.* as the import destination.

    To import files, you should be the /distr folder owner. Alternatively, you should connect with root privileges or configure the use of sudo upon logging in.

  7. Install and run the UUIDD: UUID (universally unique identifiers) daemon required for SAP to work:

    zypper install uuidd
    service uuidd start
    
  8. Check for the libaio and libaio1 packages:

    rpm -qa | grep libaio
    rpm -qa | grep libaio1
    

    The command output will display the distribution package versions.

  9. Get your VM internal IP address:

    ip addr show
    

    Result:

    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
    
  10. Add your VM internal IP address to /etc/hosts.

    1. Open the file:

      vi /etc/hosts
      
    2. Add the following line:

      <inet> vhcalnplci vhcalnplci.ru-central1.internal.
      

      Where inet is an IP address following the inet parameter in the eth0 section of the previous command output.

      Result:

      127.0.0.1 localhost
      10.0.0.29 vhcalnplci vhcalnplci.ru-central1.internal
      
  11. Check the host name:

    hostname
    

    Result:

    vhcalnplci
    

Install SAPInstall SAP

  1. Change the permissions for the SAP installation folder.

    chmod -R 777 /distr
    
  2. Navigate to /distr:

    cd /distr
    
  3. Run the SAP installation script:

    ./install.sh
    
  4. Accept the license agreement terms.

  5. Set a master password for standard SAP users.

    Password requirements:

    • At least 7 Latin characters.
    • Contains uppercase and lowercase letters and numbers.
    • No special characters.
  6. Wait for the installation to complete.

    The installation may fail with the following error message:

    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
    

    This error is caused by an expired license. To resolve this problem:

    1. Download SAP ABAP AS Part License for SAP NetWeaver AS ABAP Developer Edition 7.52 SP04 from the official website.
    2. Unpack and copy the license file to your VM’s server/TAR/x86_64/ directory via WinSCP.
    3. Run ./install.sh again.

Start and configure SAPStart and configure SAP

  1. Install the SAP logon client on your computer.

  2. Run SAP logon and configure a connection to your VM:

    • Application Server: Your VM public IP address
    • Instance number: 00
    • System ID: NPL

    Once you log on to SAP, you will see the SAP Easy Access menu on the left. This is a custom user menu containing the items you will need for daily tasks.

    To configure SAP, you can use transaction codes linked to the SAP system functions. Enter these codes in the SAP command line or add them to bookmarks for quick access.

  3. Change the default passwords to ensure optimal security:

    1. From SAP Easy Access, run SU01.
    2. Navigate to Logon Data.
    3. Select the user you want to modify.
    4. Specify a new password.

Update your licenseUpdate your license

To continue using SAP, you need to update your license:

  1. From SAP Easy Access, run SLICENSE.
  2. Copy the Active Hardware Key.
  3. Open the SAP license key page.
  4. Select NPL — SAP NetWeaver 7.x (Sybase ASE).
  5. Specify the salutation, your first and last names, email address, and the Active Hardware Key you copied earlier.
  6. Accept the license agreement terms and download the NPL.tx license file.
  7. Copy the license file to your VM and upload it to SLICENSE.

Create your first programCreate your first program

To test whether your system works properly, create a simple program exporting a user list.

  1. Log in as DEVELOPER.

  2. Run SE38 (ABAP Editor).

  3. Name your program as ZTEST.

  4. Add program code:

    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
    

    Result:

    | MANDT| USER        |
    | -----| ----------- |
    | 001  | BWDEVELOPER |
    | 001  | DDIC        |
    | 001  | DEVELOPER   |
    | 001  | SAP*        |
    

How to delete the resources you createdHow to delete the resources you created

To stop paying for the resources you created:

  • Delete the VM.
  • If you reserved a static public IP address for this project, delete it.

Was the article helpful?

Previous
Creating a Python web application with Flask
Next
Deploying a Minecraft server in Yandex Cloud
Yandex project
© 2025 Yandex.Cloud LLC