Skip to Content

After some problems with connections from SAP Analytics Cloud to different data sources I decided to automatize the update of SAP Analytics Cloud Agent (also known as C4A Agent) as much as I can. After some test I created a semi-automatic script for Linux that download and updates the C4A Agent including stopping/starting the Apache where the agent runs. It is semi-automatic since it requires to manually write some parameters on the script for downloading the new version. In the future I would update the script so it will parse the XML file and decide if there is a new version of the agent.

The script itself is quite simple:

#!/bin/sh 
########################################################################################
#                                                                                      #
#                                BASIC DATA NEEDED                                     #
#                                                                                      #
########################################################################################
#                               OSS USER & PASSWORD                                    #
########################################################################################
OSS_User=S000XXXXXX
OSS_Pass=Password
########################################################################################
#                            C4A AGENT VERSION TO DOWNLOAD                             #
########################################################################################
Item_ID=002007974700001047632017D
Item_Name=C4AAGENT67_0-80000881.ZIP
########################################################################################
#                               APACHE ROOT DIRECTORY                                  #
########################################################################################
Apache_Root=/usr/sap/apache
wget --user $OSS_User --password $OSS_Pass --no-check-certificate --max-redirect=1 https://smpdl.sap-ag.de/~swdc/$Item_ID/$Item_Name;
mkdir ./tmp;
mv $Item_Name ./tmp;
unzip ./tmp/$Item_Name -d ./tmp;
cp ./tmp/C4A_AGENT.war $Apache_Root/webapps;
########################################################################################
#                               INSERT YOUR APACHE STOP METHOD                         #
/usr/sap/apache/parar_apache.sh &>/dev/null;
########################################################################################
rm -R $Apache_Root/webapps/C4A_AGENT;
########################################################################################
#                               INSERT YOUR APACHE START METHOD                        #
/usr/sap/apache/inicio_apache.sh &>/dev/null;
########################################################################################
rm -R ./tmp;
echo 'C4A AGENT UPDATED!'

Important stuff in the script:

  • OSS USER & PASSWORD: Write your user and password for the log into the Support Portal.
  • C4A AGENT VERSION TO DOWNLOAD: This is why the script is semi-automatic. You have to log here and get some data for the new agent’s version. The interesting part is the Fastkey and Title fields, write the Fastkey in the Item_ID variable and the Title in the Item_Name variable.

  • APACHE ROOT DIRECTORY: Write your apache directory in the variable Apache_Root.
  • INSERT YOUR APACHE STOP/START METHOD: I have a script for starting and stopping the Apache but this may vary in your different. If you start and stop the Apache via service you should use ‘service apache2 start/stop’ or ‘service httpd start/stop’, otherwise write your methods there.

Execute the script with the user you use in Apache and it should be enough. After a couple of minutes the script will download the new version, unzip it and start/stop the Apache. If everything went fine you should see the C4A_AGENT directory updated in the webapps directory of Apache.

My idea for the future is to do a fully automatic script with Python so I can parse the XML from the Support Portal, check if there is a newer version and download/update it. Scheduling the script on a cron should be enough so there won’t require any human interaction during the whole process.

To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply