This method is based on configuring an Apache virtual host for every APS connector.
In this document:
Deployment of an APS connector for an application requires the following high level steps:
To create a new APS connector, use one of the following method in dependence of the deployment schema you use:
Warning
The first and the last of the above options are used exclusively for testing and training. Do not use them in a production system.
In the simplest platform configurations used for testing or training, when there are no separate hosts for APS connectors, you can install an APS connector directly on the OSS management node (MN) to test and debug your APS application.
Warning
1. The script used for automated installation here works only if the MN is installed on the Linux CentOS-7 or later version.
2. The method explained here allows you to have only one APS connector at a time. Every time you run the script provided by this method, you will reinstall the APS connector.
To use such an environment, follow these steps:
Copy the prepare-environment.sh
file to the management node, for example:
$ scp prepare-environment.sh root@a.isv1.apsdemo.org:
Establish an SSH session with the management node, for example:
$ ssh root@a.isv1.apsdemo.org
On the management node, find out the imported package. The latest imported package will be on top of the list printed out by the following command:
# ls -lt /usr/local/pem/APS/packages/
The name must contain the app.zip
extension, for example
Generic Services Sample Application-7.1.0-0.app.zip.
Copy the name of your package to use it as explained in the next step.
Run the copied script to build an APS connector for your application, for example:
# sh ./prepare-environment.sh "Generic Services Sample Application-7.1.0-0.app.zip"
If the script runs for the first time on the management node, it installs the required PHP environment including the APS PHP framework.
The script will print out the APS application endpoint URL, for example:
https://a.isv1.apsdemo.org:3443/aps-php-connector
Copy this URL to use it during installation of the APS application instance.
When setting an APS connector manually, you need to separate the host setup (used once per host) from the APS connector setup (used per each APS connector installation).
The host, on which APS connectors for various applications will be deployed, needs to have a configured web server. To do it on a CentOS Linux, follow these steps:
Enable HTTPS and client SSL certificate verification:
Install mod_ssl:
# yum install mod_ssl
In /etc/httpd/conf.d/ssl.conf
, uncomment the SSLVerifyClient
option and set it to optional_no_ca
:
SSLVerifyClient optional_no_ca
In /etc/httpd/conf.d/ssl.conf
, configure the <Files> section as follows:
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars +ExportCertData
</Files>
Restart Apache:
# service httpd restart
If you are going to use the APS PHP framework, make sure the standard PHP package and APS PHP runtime are installed on the host. For example, verify it as follows:
# rpm -qa | grep php
If one or both of them are not installed, you can use the commands below appropriately:
# yum install php
# yum install http://download.apsstandard.org/php.runtime/aps-php-runtime-2.2-330.noarch.rpm
Note
Pay attention, the runtime version might increase by the time you will do these operations. Please use the URL for the latest version.
Set the AllowOverride All option for the folder that will be the parent of application endpoints.
It is usually var/www/html/
in Apache. For example, in the /etc/httpd/conf/httpd.conf
file, find the
<Directory “var/www/html”> section and edit the following line:
AllowOverride All
Restart the Apache service:
# service httpd restart
Usually a manual method to set up an APS connector is time consuming and prone to mistakes. We provide the details of the manual method here to help you create your own automated methods and after that we will illustrate an automated method.
To set an APS connector manually, follow these steps.
Create a folder for the APS connector. For instance, the /var/www/html/vpscloud/
folder will be used in
the next steps.
Copy all provisioning scripts, that is PHP and other files from the scripts/
folder of the package to
the APS connector folder, that is to /var/www/html/vpscloud/
in our example.
Note
The name of the folder will define the APS application endpoint URL. For example, if the host name
is endpoint.a.isv1.apsdemo.org
and the folder name is vpscloud
, then the URL will be:
https://endpoint.a.isv1.apsdemo.org/vpscloud
Use this URL during the installation of the APS application instance.
Make sure the APS connector folder and all its contents are assigned to the group apache and to the user apache:
# chown -R apache:apache /var/www/html/vpscloud
Set redirect from each URL that exposes an application service to the PHP file that implements the service.
For example, if in metadata you declared four different services
named clouds, offers, contexts, and vpses, you will probably have cloudes.php
,
offers.php
, contexts.php
, and vpses.php
files. The redirect is configured by
creating the .htaccess
file just inside the vpscloud/
folder with the following content:
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /vpscloud
RewriteRule ^clouds(|/.*)$ clouds.php?q=$1 [L,QSA]
RewriteRule ^contexts(|/.*)$ contexts.php?q=$1 [L,QSA]
RewriteRule ^offers(|/.*)$ offers.php?q=$1 [L,QSA]
RewriteRule ^vpses(|/.*)$ vpses.php?q=$1 [L,QSA]
</IfModule>
Restart the Apache service:
# service httpd restart
You can make the process explained in the previous section automated using one of the following methods:
endpoint.sh
. The latter is used in a sandbox
as explained in the the APS Connector on Sandbox section.PowerShell
, or *.bat
script, or *.msi
installation file.In a case, you have no lab platform to test and debug your applications, order a sandbox.
In a deployed sandbox with the minimal lin-mn-new
configuration, you will have a separate endpoint host
ready for installation of APS connectors. In the following sample process, let us assume the sandbox
domain name is a.isv1.apsdemo.org
. In this sandbox, the endpoint.a.isv1.apsdemo.org
host
will have the PHP environment including the APS PHP framework to install APS connectors based
on PHP scripts.
Upload the APS package to the host used for creating APS connectors, for example:
$ scp Simplest_demo_project-1.0-0.app.zip root@endpoint.a.isv1.apsdemo.org:
On the endpoint host, run the endpoint.sh
script to create an APS connector.
In the following example, an APS connector is deployed in the /var/www/html/vpsdemo/
folder:
# endpoint.sh vpsdemo Simplest_demo_project-1.0-0.app.zip
Notice and copy to your buffer the endpoint URL printed out on the screen, for example:
https://endpoint.a.isv1.apsdemo.org/vpsdemo
Use this URL during the installation of the APS application instance.
If you need to add some configuration steps to the setup steps illustrated earlier,
create those configuration steps in the shell script named pre-configure.sh
.
It must be placed in the folder containing the APS connector.
If such a script exists, the endpoint.sh
script will call it after completing all the other internal operations.
Notice that endpoint.sh
exports the ENDPOINT_LOCATION variable, which is the path to the APS connector folder.
The pre-configure.sh
script can use this variable.