Follow the steps given below to run a WSO2 product as a service on Private PaaS, which runs on Docker:
Step 1:
...
Deploying Private PaaS on a preferred IaaS
Step
...
2: Downloading the
...
product pack
Panel |
---|
Download the required product pack from the respective product download page. Info |
---|
Example: Download ESB from here. |
- Copy the
respective product pack in the - downloaded
.zip format - file to the
packs folder, which is in the /etc/puppet/modules/wso2installer/files/<SERVER_NAME> directory. Example: When configuring ESB navigate - , copy the file to the
/etc/puppet/modules/wso2installer/files/wso2esb481/packs directory.
Info | You can download the product pack from the respective products download page
|
Step 3: Building and importing Docker images
Panel |
panelDownload the Private PaaS cartridges from the product page. Navigate to the <CARTRIDGE_HOME>/docker directory. Example: Download ESB from here.
|
Steps 2: Exporting the Docker image to the nodes
Code Block |
---|
cd <ESB_4.8.1_CARTRIDGE_HOME>/docker |
Run the build.sh file to build the docker Docker image. Info |
---|
This will copy the plugins and the template module Template Module to the docker Docker image. |
List the docker Docker images. Example response format: If you have successfully build the Docker image, you will get the following as a the response: Code Block |
---|
wso2/das 3.0.0 ac57800e96c2 2 minutes ago 777.6 MB |
Save the new image to a .tar file. Code Block |
---|
docker save <NEW_IMAGE_NAME> > <LOCATION_OF_OF_TAR_FILE> |
For example: Code Block |
---|
docker save myppaasimage > /tmp/myppaasimage.tar |
Copy the Docker image to the Kubernetes minion nodesnode. Code Block |
---|
scp <IMAGE_NAME>.tar core@<NODE_IP>: |
Example: Code Block |
---|
scp myppaasimage.tar core@172.17.8.102: |
Info |
---|
Execute the kubectl get nodes command to get the IP address of the Kubernetes nodes. |
SSH into the Kubernetes node using one of the following commands: Code Block |
---|
ssh core@<NODE_IP> or vagrant ssh node-01 |
Load the .tar file to the Kubernetes node. Code Block |
---|
docker load < <LOCATION_OF_OF_TAR_FILE> |
Example: Code Block |
---|
docker load < /tmp/myppaasimage.tar |
Info |
---|
If there is more than one Kubernetes node exists, repeat step 4, 5 and 6 and 7 for the remaining nodes. |
|
Step 4: Creating product specific databases
Panel |
---|
It is mandatory to create the registry database for all products. Example: Code Block |
---|
mysql> create database regdb;
mysql> use regdb;
mysql> source <APIM_HOME>/dbscripts/mysql.sql;
mysql> grant all on regdb.* TO username@localhost identified by "password"; |
Create a database (or databases depending on the requirement) using the following commands, where <PRODUCT_HOME> is the path to any of the product instances you installed, and specify the username and password . Info |
---|
title | About using MySQL in different operating systems |
---|
| For users of Microsoft Windows, when creating the database in MySQL, it is important to specify the character set as latin1. Failure to do this may result in an error (error code: 1709) when starting your cluster. This error occurs in certain versions of MySQL (5.6.x) and is related to the UTF-8 encoding. MySQL originally used the latin1 character set by default, which stored characters in a 2-byte sequence. However, in recent versions, MySQL defaults to UTF-8 to be friendlier to international users. Hence, you must use latin1 as the character set as indicated below in the database creation commands to avoid this problem. Note that this may result in issues with non-latin characters (like Hebrew, Japanese, etc.). The following is how your database creation command should look. mysql> create database <DATABASE_NAME> character set latin1; For users of other operating systems, the standard database creation commands will suffice. For these operating systems, the following is how your database creation command should look. mysql> create database <DATABASE_NAME>; |
Expand |
---|
title | Click here to see an example |
---|
| You will need to create 3 |
|
...
databases for API Manager as shown below: Code Block |
---|
mysql> create database apimgtdb;
mysql> use apimgtdb;
mysql> source <APIM_HOME>/dbscripts/apimgt/mysql.sql;
mysql> grant all on apimgtdb.* TO username@localhost identified by "password";
mysql> create database userdb;
mysql> use userdb;
mysql> source <APIM_HOME>/dbscripts/mysql.sql;
mysql> grant all on userdb.* TO username@localhost identified by "password";
mysql> create database regdb;
mysql> use regdb;
mysql> source <APIM_HOME>/dbscripts/mysql.sql;
mysql> grant all on regdb.* TO username@localhost identified by "password"; |
Note |
---|
Ensure that MySQL is configured so that all nodes can connect to it. |
|
|
Step 5: Configuring the artifact JSON files
Panel |
---|
- Cartridge JSON
Configure the following parameters in the cartridge JSON file:- Ensure that the
imageId under the iaasProvider is the same as the Docker image you created, if you are running Private PaaS on Kubernetes.
- Network Partition JSON
Configuring the network partition is optional. Define the load balancer port IPs under property .
Application JSON If the application is a single tenant application, ensure to add the artifact repository related details in subscribableInfo , under the artifactRepository section, of the application JSON definition. Example: Code Block |
---|
"artifactRepository":{
"privateRepo":false,
"repoUrl":"https://github.com/lakwarus/single-cartridge.git",
"repoUsername":"",
"repoPassword":""
} |
|
Step 6: Deploying WSO2 products on Private PaaS
Panel |
---|
Navigate to the preferred WSO2 products application sample directorythe application directory of the preferred WSO2 product. Code Block |
---|
cd <PRIVATE_PAAS_CARTRIDGES_HOME>/<SERVER_NAME>/<VERSION>/samples/applications/<SERVER_NAME>-<VERSION>-application/scripts/<IAAS> |
Example: Code Block |
---|
cd <PRIVATE_PAAS_CARTRIDGES_HOME>/wso2das/3.0.0/samples/applications/wso2das-300-application/scripts/mock |
Deploy the application.
|
...
What's next?
Info |
---|
|
After you have configured the respective WSO2 products to run on PPaaS, you can access the application instances deployed in PPaaS. |