/adt

Automated Deployment Tools for eXo products

Primary LanguageShell

This project is a set of tools used to automate the deployment of eXo products for testing purpose.

How to use ?
============

Prerequisites
------------------------

Mandatory :

  * A Java 6 JVM available in the PATH

Optional :

  * A mysql server with a local configuration (~/.my.cnf) that allows the current system user to create databases and grant rights. You can activate the usage of MySQL with the environment variable : DEPLOYMENT_DATABASE_TYPE=MYSQL
  * An apache server to display the list of instances and to create a reverse proxy for all instances. Deactivated by default you can activate this feature with the environment variable : DEPLOYMENT_SETUP_APACHE=true
  * An UFW firewall to protect your (ubuntu server). The script will automatically open or close required ports (HTTP, JMX, ...). Deactivated by default you can activate this feature with the environment variable : DEPLOYMENT_SETUP_UFM=true
  * An awstats instance to keep statistics of usage. Deactivated by default you can activate this feature with the environment variable : DEPLOYMENT_SETUP_AWSTATS=true

Prepare your environment
------------------------
Fork this project :

    git clone git://github.com/exoplatform/adt.git
    
Define the environment variable ADT_DATA, which will be the path to a working directory used by ADT.

    export ADT_DATA=$HOME/adt_data
    
You can also define your settings in $HOME/.adtrc or in /etc/default/adt
    
You're ready to go
------------------

Deploy a server : download and configure it

    # adt.sh deploy social 1.3.0-SNAPSHOT
    
Start a server : start a deployed instance
    
    # adt.sh start social 1.3.0-SNAPSHOT

Stop a server : stop a deployed instance

    # adt.sh stop social 1.3.0-SNAPSHOT

Restart a server : restart a deployed instance

    # adt.sh restart social 1.3.0-SNAPSHOT

Undeploy a server : stop a deployed instance if already running and delete it.

    # adt.sh undeploy social 1.3.0-SNAPSHOT

List all deployed instances

    # adt.sh list

Usage
-----

    usage: ./adt.sh <action>

    This script manages automated deployment of eXo products for testing purpose.

    Action :
      deploy       Deploys (Download+Configure) the server
      start        Starts the server
      stop         Stops the server
      restart      Restarts the server
      undeploy     Undeploys (deletes) the server

      start-all    Starts all deployed servers
      stop-all     Stops all deployed servers
      restart-all  Restarts all deployed servers
      undeploy-all Undeploys (deletes) all deployed servers
      list         Lists all deployed servers

    Environment Variables :

      They may be configured in the current shell environment or /etc/default/adt or $HOME/.adtrc
      
      PRODUCT_NAME                  : The product you want to manage. Possible values are :
        gatein       GateIn Community edition
        exogtn       GateIn eXo edition
        webos        eXo WebOS
        social       eXo Social
        ecms         eXo Content
        ks           eXo Knowledge
        cs           eXo Collaboration
        plf          eXo Platform
        plfcom       eXo Platform Community
        plftrial     eXo Platform Trial
        compint      eXo Company Intranet
        docs         eXo Platform Documentations Website
        android      eXo Mobile Android
      PRODUCT_VERSION               : The version of the product. Can be either a release, a snapshot (the latest one) or a timestamped snapshot

      ADT_DATA                      : The path where data have to be stored (default: under the script path - /Users/arnaud/Code/eXo/adt)
      DEPLOYMENT_SETUP_APACHE       : Do you want to setup the apache configuration (default: false)
      DEPLOYMENT_SETUP_AWSTATS      : Do you want to setup the awstats configuration (default: false)
      DEPLOYMENT_SETUP_UFW          : Do you want to setup the ufw firewall configuration (default: false)
      DEPLOYMENT_AJP_PORT           : AJP Port (default: 8009)
      DEPLOYMENT_HTTP_PORT          : HTTP Port (default: 8080)
      DEPLOYMENT_SHUTDOWN_PORT      : SHUTDOWN Port (default: 8005)
      DEPLOYMENT_RMI_REG_PORT       : RMI Registry Port for JMX (default: 10001) 
      DEPLOYMENT_RMI_SRV_PORT       : RMI Server Port for JMX (default: 10002)
      DEPLOYMENT_DATABASE_TYPE      : Which database do you want to use for your deployment ? (default: HSQLDB, values : HSQLDB | MYSQL)
      ACCEPTANCE_HOST               : The hostname (vhost) where is deployed the acceptance server (default: acceptance.exoplatform.org)
      CROWD_ACCEPTANCE_APP_NAME     : The crowd application used to authenticate the front-end (default: none)
      CROWD_ACCEPTANCE_APP_PASSWORD : The crowd application''s password used to authenticate the front-end (default: none)
      KEEP_DB                       : Keep the current database content for MYSQL. By default the deployment process drops the database if it already exists. (default: false)

      REPOSITORY_SERVER_BASE_URL    : The Maven repository URL used to download artifacts (default: https://repository.exoplatform.org)
      REPOSITORY_USERNAME           : The username to logon on $REPOSITORY_SERVER_BASE_URL if necessary (default: none)
      REPOSITORY_PASSWORD           : The password to logon on $REPOSITORY_SERVER_BASE_URL if necessary (default: none)

      ADT_DEBUG                     : Display debug details (default: false)