Blogs

Here you can find a list of all my blogs published here.

  • SAP Web IDE: Invalid backend response received by SCC
    Connectivity between SAP Cloud Platform and an on premise SAP NetWeaver system is normally achieved via SAP Cloud Connector. A nice feature depending on this is the remote connection of SAP Web IDE to an on premise ABAP system. The feature allows to easily load apps from the ABAP system and change or extend them from everywhere. For this feature to work, some ICF services must be active on the ABAP system and remote access enabled on SCC. If not, Web IDE cannot “talk” to NW ABAP. Some possible errors and solutions regarding the setup are shown in this blog. Scenario A NetWeaver ABAP system with Fiori apps is available and the SAP Cloud Connector is configured to expose the…
    Continue reading »

  • Download resources from SAP Cloud for your CI job
    When running a CI job you may need to use some SAP tools. For instance, the MTA builder or Neo tools. Many CI servers include integration to build tools or plugins are provided by the community or vender. Jenkins offers plugins for Maven, Ant or Node that let you easily integrate these into a CI jobs. If you have a CI job for SAP, it is your task to make the necessary tools available. There are not many plugins for SAP available for Jenkins. Some tools you may need can be found on SAP’s tool site. For instance, the MTA builder. A simple JAR file that is available for download and needed in case you are working with MTA apps.…
    Continue reading »

  • Clone a SCP git repository from command line
    I have a git repository on SCP that I want to clone using git on my laptop. I thought this should be easy to do. The source code of my project is available in the git repo at SCP. Cloning the repo using git clone from this URL should work. git clone https://git.hanatrial.ondemand.com/p539123trial/cisample The clone fails with “service not enabled.” Looking at SAP’s documentation, this should not have happened. Here SAP Cloud Platform documentation for the git service differs from reality. SAP Help I did a), and b) did not apply, as I wasn’t asked for my SCN user ID nor password. SAP’s git troubleshooting guide contains a section about the error message. Good to know that there is a…
    Continue reading »

  • Solving reverse proxy error ERR_CONTENT_DECODING_FAILED
    Configuring a reverse proxy is not an easy task. It involves some trial and error and dealing with unexpected errors. One of those errors is ERR_CONTENT_DECODING_FAILED. The web site won’t load in your browser and Chrome will show this error message: Error ERR_CONTENT_DECODING_FAILED may show up in your browser when a resource is configured on your reverse proxy, and the backend communication is working. That is: the backend is returning data, but not in a form the browser expects. Like: browser expects a GZIP response, but receives plain text. Therefore the hint content decoding failed. Content received, but the browser is not able to decode / understand the data. To solve this error, reset the Accept-Encoding request header in your…
    Continue reading »

  • Setup OpenVPN troubleshooting
    While setting up OpenVPN I came accross some common errors or workarounds that make life easier. To make it easier to remember these I have documented them in this blog. Maybe they are useful for others as well. Remove pass phrase In case you want to remove the pass phrase from the server key to make it easiert to start the OpenVPN server part, use the following command: mv server.key server.key.orig openssl rsa -in server.key.orig -out server.key You’ll have to enter one more time the pass phrase of the key, and then a new server.key file is written without the pass phrase. You can see this when looking into the key files. With pass phrase: Note: file starts with: BEGIN…
    Continue reading »

  • OpenVPN connection test
    After configuring and running both the OpenVPN server and client, it’s a good idea to test if the VPN is working. This involves some tests on both the server and client. OpenVPN Server Network Device After the server is started, a new interface should be created. Run ifconfig to get a list of all available interfaces. In case tun is configured in the conf file as device type, a new interface with name tun0 is created. ifconfig Check server log for client connection In case OpenVPN is started as a service, the log can be found at /var/log/messages. If you start it directly on the command line, the log will be shown on the shell. When a client connects, the…
    Continue reading »

  • Setup OpenVPN client on Raspberry Pi
    OpenVPN uses certificates to authenticate the server and clients. Therefore, the client needs to have a valid client certificate. This certificate needs to be issued by the CA server that also issued the certificate of the OpenVPN server. In my case, this server is installed together with the OpenVPN server on the AWS EC2 instance. The process to create the client certificate is the same as with the server certificate, only the certificate type must be client, or: TLS Web Client Authentication. This is done by specifying the client parameter in the generate certificate request command. Depending whether or not easy-rsa or any other tool to generate a certificate request is available on the client, the request can be generated…
    Continue reading »

  • Setup OpenVPN server on Amazon EC2
    Recently I got some new hardware that I will use to run some useful software. To use the software from anywhere, I’ll need to have remote access. As I cannot do DMZ or port forwarding with my new internet provider, I decided to connect my home server using VPN to a access machine running on AWS. The AWS EC2 Linux computer will serve as my entry point. Services running on the RP at home connected via VPN can be accessed from EC2. Other computers at my home cannot be accessed, as the IP is different and no route is configured. This setup comes with several architectural questions to solve: How to ensure the communication is secure? How to guarantee the…
    Continue reading »

  • Uncompressing a multi-part 7zip file in Debian
    7zip is a popular compression program for Windows. It allows to effectively compress files, split them into several archives and to add protection by using a password. This all works fine if you are a Windows user. In case you now want to extract such a multi part password protected file in Linux, you’ll find out that this isn’t a standard use case. Uncompressing these files involves some work. 7zip is not made available for Linux by the developer. Gzip or zip won’t work with 7zip compressed files. But: an unofficial version is available and it is possible to extract 7zip files in Debian/Linux. You have some options available for installing 7zip for Debian, like apt or by compilation. The…
    Continue reading »

  • Adjust image size of Docker qcow2 file
    Short version Increase image size by 100GB: qemu-img resize ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 +100G Resize partition: qemu-system-x86_64 -drive file=~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2  -m 512 -cdrom ~/Downloads/gparted-live-0.30.0-1-amd64.iso -boot d -device usb-mouse -usb Get an empty Docker.qcow2 image from my GitHub page and make your Docker use it: https://github.com/tobiashofmann/sap-nw-abap-docker How to adjust the Docker image size for using large containers like SAP NetWeaver ABAP Docker uses an image file to store Docker containers. The file is named Docker.qcow2 and is located (on Mac) at: ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2 By default, the file can grow to a size of 64 GB. When you first start Docker, the size of this image is around 1.4GB. Adding containers, image, etc and it will grow to 64GB. The 64GB default size can be seen when…
    Continue reading »