Resin Cloud Deployment Reference

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
(Deploying to a staging server)
(Deploying to a staging server)
Line 194: Line 194:
 
production/webapp/default/blog-0.1.0
 
production/webapp/default/blog-0.1.0
 
staging/webapp/default/blogz-0.1.0
 
staging/webapp/default/blogz-0.1.0
</code>
 
 
</pre>
 
</pre>
 +
</code>
 +
  
 
The /blog works but /blogz does not work because server is by default setup as production server.
 
The /blog works but /blogz does not work because server is by default setup as production server.
Line 205: Line 206:
 
...
 
...
 
HTTP request sent, awaiting response... 200 OK
 
HTTP request sent, awaiting response... 200 OK
</code>
 
 
</pre>
 
</pre>
 +
</code>
  
 
/blogz does not work because server is not setup for production
 
/blogz does not work because server is not setup for production
Line 226: Line 227:
 
Output:
 
Output:
 
Resin/4.0.24 stopped -server 'app-0' for watchdog at 127.0.0.1:6600
 
Resin/4.0.24 stopped -server 'app-0' for watchdog at 127.0.0.1:6600
</code>
 
 
</pre>
 
</pre>
 +
</code>
  
 
<code>
 
<code>
Line 249: Line 250:
 
   -debug-port <port>    : configure a debug port
 
   -debug-port <port>    : configure a debug port
 
   -jmx-port <port>      : configure an unauthenticated jmx port
 
   -jmx-port <port>      : configure an unauthenticated jmx port
</code>
 
 
</pre>
 
</pre>
 +
</code>
  
 
<code>
 
<code>
Line 264: Line 265:
 
...
 
...
 
...
 
...
</code>
 
 
</pre>
 
</pre>
 +
</code>

Revision as of 23:17, 5 December 2011

  1. Deploying to a local server
  2. Deploying to a remote server
    1. Setting up a user and password
  3. Setting up a cloud topology
    1. Deploying to the Triad
    2. license-add enabling Resin features
  4. Deploy to a staging server
    1. Setting up load balancer to not to deploy to staging server
  5. Common tasks
    1. Deploying a new application deploy
    2. Listing current versions of deployed application
    3. Undeploying a new application
    4. Using deploy-copy to promote a release to production
    5. Using deploy-copy to rollback a release that was deployed to production
    6. Installing mysql driver for a web application using config-deploy
    7. Showing what is in remote config with config-list-ls and config-list-cat
  6. web-app-deploy settings


$ resinctl | grep deploy 
  deploy - deploys an application
  deploy-copy - copies an application
  deploy-list - lists all deployed applications
  deploy-restart - restarts an application
  deploy-start - starts an application
  deploy-stop - stops an application
  undeploy - undeploys an application
  config-deploy - deploys configuration directory
  config-undeploy - undeploys a config

$ resinctl | grep config 
  config-deploy - deploys configuration directory
  config-copy - copies configuration
  config-list - lists all deployed configurations
  config-list-ls - list contents of config dir (ex. ./lib)
  config-list-cat - list contents of config file
  config-undeploy - undeploys a config


Deploying to a local server

Deploy commands available

$ resinctl help deploy


Output:
usage: bin/resin.sh [-conf <file>] [-server <id>] deploy -user <user> \
-password <password> [options] <war-file>

description:
   deploys application specified in a <war-file> to resin server

options:
   -conf <file>          : resin configuration file
   -server <id>          : id of a server
   -address <address>    : ip or host name of the server
   -port <port>          : server http port
   -user <user>          : user name used for authentication to the server
   -password <password>  : password used for authentication to the server
   -host <host>          : virtual host to make application available on
   -name <name>          : name of the context to deploy to, defaults to war-file name
   -stage <stage>        : stage to deploy application to, defaults to production
   -version <version>    : version of application formatted as <major.minor.micro.qualifier>
   -m <message>          : commit message

Turning on versioning:

$ cat /etc/resin/resin.properties | grep deploy

Output:
deploy_versioning : true


$ sudo grep "web-app-deploy" -A 1 /etc/resin/resin.xml 

Output:
      <web-app-deploy path="webapps" versioning="${deploy_versioning}"
                      expand-preserve-fileset="WEB-INF/work/**"/>

"if true, use the web-app's numeric suffix as a version"

Run deploy command passing location of war file.

$ resinctl deploy ./target/blog-0.1.0.war -name blog 

Output:
Deployed production/webapp/default/blog from \
./target/blog-0.1.0.war to hmux://127.0.0.1:6800

To see the deployed you can use resinctl deploy-list

$ resinctl deploy-list

Output:
production/webapp/default/blog

  • TODO explain production/webapp/default/blog
  • TODO add a table
  • TODO explain how to start up a server with different staging servers


Now undeploy it:

$ resinctl undeploy blog

Output:
Undeployed blog from hmux://127.0.0.1:6800

At this point there should be nothing

$ resinctl deploy-list

Now deploy it with versioning:

$ resinctl deploy ./target/blog-0.1.0.BUILD-SNAPSHOT.war -name blog -version 0.1.0 

Output:
Deployed production/webapp/default/blog-0.1.0 from \
./target/blog-0.1.0.BUILD-SNAPSHOT.war to hmux://127.0.0.1:6800

Blog application is under the version 0.1.0

$ resinctl deploy-list

Output:
production/webapp/default/blog-0.1.0

  • TODO explain production/webapp/default/blog-0.1.0
  • TODO add a table
  • TODO explain how to start up a server with different staging servers

Deploying to a staging server

Deploy to staging server

$ resinctl deploy ./target/blog-0.1.0.BUILD-SNAPSHOT.war -name blogz -version 0.1.0 -stage staging

Output
Deployed staging/webapp/default/blogz-0.1.0 from \
./target/blog-0.1.0.BUILD-SNAPSHOT.war to hmux://127.0.0.1:6800

Showing items deployed to staging server.

$ resinctl deploy-list
production/webapp/default/blog-0.1.0
staging/webapp/default/blogz-0.1.0


The /blog works but /blogz does not work because server is by default setup as production server.

/blog works because server is setup for production

$ wget localhost:8080/blog
...
HTTP request sent, awaiting response... 200 OK

/blogz does not work because server is not setup for production

$ wget localhost:8080/blogz
...
HTTP request sent, awaiting response... 404 Not Found
</code>

To run the server as a staging server do the following:

<code>

$ resinctl stop

Output:
Resin/4.0.24 stopped -server 'app-0' for watchdog at 127.0.0.1:6600

$ resinctl help start

Output:
usage: bin/resin.sh [-options] start

where options include:
   -conf <file>          : select a configuration file
   -data-directory <dir> : select a resin-data directory
   -join-cluster <cluster>       : join a cluster as a dynamic server
   -log-directory <dir>  : select a logging directory
   -resin-home <dir>     : select a resin home directory
   -root-directory <dir> : select a root directory
   -server <id>          : select a <server> to run
   -watchdog-port <port> : override the watchdog-port
   -verbose              : print verbose starting information
   -preview              : run as a preview server
   -debug-port <port>    : configure a debug port
   -jmx-port <port>      : configure an unauthenticated jmx port

$ sudo resinctl start -stage staging

Output:
Resin/4.0.24 launching watchdog at 127.0.0.1:6600
Resin/4.0.24 started -server 'app-0' for watchdog at 127.0.0.1:6600


$ wget localhost:8080/blogz
...
...

Personal tools