Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

dukesbank sample application

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

This is a collection of build and deployment automation examples built around the Duke's Bank J2EE sample

Amazon/EC2 Console and Auth Info:

  • Amazon EC2 Console Login
  • username: anthony@dtosolutions.com
  • password: NOT_SHOWN (can send if you need it)
  • SSH Key: dukesbank.dtolabs.com_rsa (can send if you need it)
  • Search for "dukesbank.dtolabs.com" in instances search bar will list the dukesbank instances: build, repo, deploy, app

Start the EC2 Instances

Configure elastic IPs for: build, repo, deploy, and app as shown here via the EC2 Console:

(NOTE: elastic IPs will be disassociated from these instances then they are stopped, so when we start them they must be re-associated)

build i-276d1f5c (Jenkins)

repo i-3f512344 (Nexus)

deploy i-29572552 (Rundeck/Yum)

app i-1b5b2960 (JBoss)

spare i-a78e11dc

  • ElasticIP: 75.101.135.167 dukesbank.dtolabs.com

Jenkins Jobs:

  • All jobs are committed into source control: workshop/jenkins/
  • All jobs use: git://github.com/dtolabs/dukesbank.git
  • Jboss_403: Produces JBoss RPM
  • DukesBank: Produces the DukesBank EAR RPM
  • DukesBank_Config: Produces the DukesBank Configuration RPM

Login to the repo node and start Nexus:

  Charles-Scotts-DTO-MacBook-Pro:2013Jan chuck$ ssh -i dukesbank.dtolabs.com_rsa -l ec2-user repo.dukesbank.dtolabs.com
  Last login: Tue Jan  8 18:02:07 2013 from c-24-130-174-168.hsd1.ca.comcast.net
  [ec2-user@ip-10-144-14-176 ~]$ sudo su - repouser
  [repouser@ip-10-144-14-176 ~]$ cd nexus/nexus
  [repouser@ip-10-144-14-176 nexus]$ bin/nexus start

Rundeck Jobs:

  • All jobs are committed into source control: workshop/rundeck/
  • Start: Start JBoss
  • Stop: Stop JBoss
  • DeployFromJenkins: deploys the latest DukesBank ear (only) from Jenkins onto the app node
  • DeployFromNexus: deploys the selected DukesBank ear, config, and JBoss Container from Nexus onto the app node
  • Deploy: broken but appears to issue with reusing DeployFromNexus without any parameters being passed.

NOTES:

Yum Server is empty but available on the deploy server. Requires apache server and installed as follows with /var/www/html/yum as the yum root:

[ec2-user@deploy ~]$ hostname
deploy.dukesbank.dtolabs.com
[ec2-user@deploy ~]$ sudo yum -y install mod_ssl
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror, security
Determining fastest mirrors
 * base: mirror.symnds.com
 * extras: mirrors-pa.sioru.com
 * updates: mirrors.advancedhosters.com
base                                             
...
...
Running Transaction
  Installing : httpd-tools-2.2.15-15.el6.centos.1.x86_64                                                                                                                                        1/5 
  Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                                                                                                                                             2/5 
  Installing : mailcap-2.1.31-2.el6.noarch                                                                                                                                                      3/5 
  Installing : httpd-2.2.15-15.el6.centos.1.x86_64                                                                                                                                              4/5 
  Installing : 1:mod_ssl-2.2.15-15.el6.centos.1.x86_64                                                                                                                                          5/5 

Installed:
  mod_ssl.x86_64 1:2.2.15-15.el6.centos.1                                                                                                                                                           

Dependency Installed:
  apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1            httpd.x86_64 0:2.2.15-15.el6.centos.1            httpd-tools.x86_64 0:2.2.15-15.el6.centos.1            mailcap.noarch 0:2.1.31-2.el6           

Complete!
bash-4.1$ pwd
/var/www/html
bash-4.1$ ls -ld yum
drwxr-xr-x 2 apache root 4096 Jan 10 22:09 yum
[ec2-user@deploy html]$  sudo service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using deploy.dukesbank.dtolabs.com for ServerName
                                                           [  OK  ]

Jenkins/Java Configuration

Development OpenJDK installed:

[ec2-user@build ~]$ hostname
build.dukesbank.dtolabs.com
[ec2-user@build ~]$ rpm -q java-1.6.0-openjdk-devel
java-1.6.0-openjdk-devel-1.6.0.0-1.48.1.11.3.el6_2.x86_64

Jenkins/Ant Configuraiton, see Jenkins Global Settings which is how jenkins finds Ant.

Ant is installed in: /opt/apache-ant-1.8.4

[ec2-user@build ~]$ hostname
build.dukesbank.dtolabs.com
[ec2-user@build ~]$ cd /opt/apache-ant-1.8.4/

requires ivy jar in ANT_HOME:

[ec2-user@build apache-ant-1.8.4]$ ls -l lib/ivy-2.3.0-rc1.jar 
-rw-r--r-- 1 root root 1214376 Aug 16 21:21 lib/ivy-2.3.0-rc1.jar

Obtain ivy jar from: http://www.linuxtourist.com/apache//ant/ivy/2.3.0-rc2/apache-ivy-2.3.0-rc2-bin.tar.gz

Charles-Scotts-DTO-MacBook-Pro:Downloads chuck$ gunzip -c apache-ivy-2.3.0-rc2-bin.tar.gz |tar tf - |grep \.jar$
apache-ivy-2.3.0-rc2/ivy-2.3.0-rc2.jar

and drop into $ANT_HOME/lib

Trigger a CI build and deploy with the Rundeck/Jenkins plugin:

In a DukesBank checkout, we will change Bank message from Duke to Acme by committing a change to the WebMessages.properties file:

[chuck@app dukesbank]$ pwd
/home/chuck/workspace/dtolabs/dukesbank
[chuck@app dukesbank]$  find . -name WebMessages.properties -print
./src/j2eetutorial14/examples/bank/web/WebMessages.properties
[chuck@app dukesbank]$ vi ./src/j2eetutorial14/examples/bank/web/WebMessages.properties
[chuck@app dukesbank]$ git diff ./src/j2eetutorial14/examples/bank/web/WebMessages.properties
diff --git a/src/j2eetutorial14/examples/bank/web/WebMessages.properties b/src/j2eetutorial14/examples/bank/web/WebMessages.properties
index a8fed89..269f687 100644
--- a/src/j2eetutorial14/examples/bank/web/WebMessages.properties
+++ b/src/j2eetutorial14/examples/bank/web/WebMessages.properties
@@ -25,7 +25,7 @@ LogonReturn=Return to log in page.
 CustomerId=Customer ID:
 Password=Password:
 
-Welcome=Welcome to Duke's Bank.
+Welcome=Welcome to Acme's Bank.
 Farewell=Thank you for banking with Anthony's Bank.
 
 AccountName=Account
 [chuck@app dukesbank]$ git commit -m 'change welcome msg' ./src/j2eetutorial14/examples/bank/web/WebMessages.properties
 [chuck@app dukesbank]$ git commit --all
Something went wrong with that request. Please try again.