Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Amazon Web Services (AWS) is a cloud computing software platform, which users primarily deploy as an infrastructure as a service (IaaS) solution.

Follow the instructions below to install Stratos with Amazon EC2, using a virtual machine (VM) setup:

Ensure that all the following prerequisites have been met based on your environment and IaaS.

...

Install the required applications and set the Maven environment variable.

Info

For more information on the prerequisites, see Prerequisites.

Download the Stratos binary distribution (apache-stratos-version-SNAPSHOT.zip) and unzip it.

This can be done using any of the following methods:

...

Method 1 - Download the Stratos binary distribution from Apache Download Mirrors and unzip it. 

Methods 2 - Build the Stratos source to obtain the binary distribution and unzip it.

...

titleClick here for instructions

...

Build Stratos using Maven.

  1. Navigate to the directory that you checked out the Stratos source distribution.

    cd <local-folder-name>

    For example: cd myLocalRepo

  2. Use Maven to build the source. 

    mvn clean install

    Tip

    If you are building the source for the very first time, the building process will take a considerable amount of time. However, when building from source you can avoid running all the unit tests to make this process faster.
    mvn clean install -Dmaven.test.skip=true 

...

Obtain the Stratos binary distribution apache-stratos-version-SNAPSHOT.zip from the <STRATOS_SOURCE_HOME>/products/stratos/modules/distribution/target directory and unzip it.

...

Start ActiveMQ.

Expand
titleClick here for instructions
  1. Download and unzip ActiveMQ .

  2. Navigate to the <ACTIVEMQ-HOME>/bin/ directory, which is in the unzipped ActiveMQ distribution.

  3. Run the following command to start ActiveMQ.

    ./activemq start

...

Setup Puppet Master.
Puppet is an open source configuration management utility. In Stratos, Puppet has been used as the orchestration layer.

Info

Puppet is an open source configuration management utility. In Stratos, Puppet has been used as the orchestration layer.
For more informations, see
Configuring Puppet Master.

Create an EC2 cartridge base image.

...

titleClick here for instructions

...

Navigate to the <apache-stratos-version-SNAPSHOT>/repository/conf/mock-iaas.xml file and disable the Mock IaaS. By default, the Mock IaaS will be enabled. 

Code Block
<mock-iaas enabled="false">

...

Navigate to the <apache-stratos-version-SNAPSHOT>/repository/deployment/server/webapps directory and delete the mock-iaas.war file. 

When Stratos is run the mock-iaas.war extracts the mock-iaas folder. Therefore if you have run Stratos previously, delete the  mock-iaas folder too.

...

Configure the Cloud Controller.

Tip

Prior to carrying out the following steps, make sure to unzip the Stratos binary distribution ( apache-stratos-version-SNAPSHOT.zip ). If you are building Stratos using the source distribution, the binary distribution is available in the <STRATOS_SOURCE_HOME>/products/stratos/modules/distribution/target directory.

Follow the instructions below to update the Cloud Controller (CC) configurations:

  1. Configure the IaaS provider details in the  <apache-stratos-version-SNAPSHOT>/repository/conf/cloud-controller.xml file and comment the IaaS provider details that are not being used. 

    • Update the identitycredentialowner-idavailabilityZonesecurityGroupskeyPair name of the Amazon EC2 IaaS provider.

      Code Block
      <cloudController>
         ...
         <iaasProvider type="ec2" name="Amazon EC2">
            <className>org.apache.stratos.cloud.controller.iaases.ec2.EC2Iaas</className>
            <provider>aws-ec2</provider>
            <identity svns:secretAlias="cloud.controller.ec2.identity">identity</identity>
            <credential svns:secretAlias="cloud.controller.ec2.credential">credential</credential>
            <property name="jclouds.ec2.ami-query" value="owner-id=owner-id;state=available;image-type=machine"/>
            <property name="availabilityZone" value="ap-southeast-1b"/>
            <property name="securityGroups" value="security-group"/>
            <property name="autoAssignIp" value="true" />
            <property name="keyPair" value="keypair-name"/>
         </iaasProvider>
         ...
      </cloudController>
  2. Update the values of the message-broker-ip and message-broker-port in the mqtttopic.properties file, which is in the <apache-stratos-version-SNAPSHOT>/repository/conf directory. The default values are message-broker-ip=localhost and message-broker-port= 1883.

    Code Block
    mqtturl=tcp://[MB_IP]:[MB_MQTT_PORT]
    clientID=stratos
    tempfilelocation=/tmp

...

Update the values of the MB_IP and MB_PORT in the jndi.properties file, which is in the <apache-stratos-version-SNAPSHOT>/repository/conf directory.

Info

The values are as follows:

MB_IP: The IP address used by ActiveMQ.

MB_PORT: The port used by ActiveMQ. The default value of the  message-broker-port=   61616.
Code Block
connectionfactoryName=TopicConnectionFactory
java.naming.provider.url=tcp://[MB_IP]:[MB_Port]
java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory

...

Update the values of the PUPPET_IP and PUPPET_HOST_NAME in the cartridge-config.properties file, which is in the <apache-stratos-version-SNAPSHOT>/repository/conf directory.

Info

The values are as follows:

PUPPET_IP: The IP address of the running Puppet instance.

PUPPET_HOST_NAME :The host name of the running Puppet instance.
Code Block
autoscaler.service.url=https://localhost:9443/services/AutoscalerService/
cloud.controller.service.url=https://localhost:9443/services/CloudControllerService/
stratos.manager.service.url=https://localhost:9443/services/StratosManagerService/
puppet.ip=[PUPPET_IP]
puppet.hostname=[PUPPET_HOST_NAME]
puppet.dns.available=false
puppet.environment=stratos 

...

Update the value of the MB_IP in the JMSOutputAdaptor file, which is in the <apache-stratos-version-SNAPSHOT>/repository/deployment/server/outputeventadaptors directory.

Info
MB_IP: he IP address used by ActiveMQ.
Code Block
<outputEventAdaptor name="JMSOutputAdaptor" statistics="disable"
  trace="enable" type="jms" xmlns="http://wso2.org/carbon/eventadaptormanager">
  <!--property name="java.naming.provider.url">CEP_HOME/repository/conf/jndi.properties</property-->
  <property name="java.naming.provider.url">tcp://[MB_IP]:61616</property>
  <property name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</property>
  <property name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</property>
  <property name="transport.jms.DestinationType">topic</property>
</outputEventAdaptor>

...

Navigate to the <apache-stratos-version-SNAPSHOT>/bin directory, which is in the unzipped Stratos distribution.

Code Block
cd <apache-stratos-version-SNAPSHOT>/bin/

Start Stratos. 

...

Follow the steps given below to deploy Private Paas with AWS:

To deploy Private PaaS with AWS, you will require the two Amazon Machine Images (AMI) given below:

  • Puppet AMI
    The Puppet AMI will contain a Puppet Master and Puppet Agent, which is pre-configured.
     
  • Private PaaS AMI
    The Private PaaS AMI will contain Private PaaS pre configured with MySQL, ActiveMQ and the WSO2 products as shown in the below diagram.

    Panel
    bgColor#F5F5F5
    titleBGColor#D3D3D3
    titlePoints to note
    • The Config registry database of WSO2 Private PaaS will include the config registries for the following WSO2 products:

      • WSO2 API Manager
      • WSO2 Application Server
      • WSO2 Identity Server
      • WSO2 Data Analytics Server
    • You will need to define the following IPs, before running the samples.
      • Puppet Master IP
      • Private PaaS Host IP
      • Database IP

Image Added