Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added check_deploy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 31 additions & 0 deletions modules/deploy/manifests/init.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Application deployment
class deploy{

$app_url = 'http://www.cumulogic.com/download/Apps/testweb.zip'
$jboss_home = '/opt/jboss-as-7.1.1.Final'
$deploy_path = "${jboss_home}/standalone/deployments/"

# install unzip
package { 'unzip':
ensure => installed,
}

# download app
file { 'app_file':
ensure => file,
path => '/opt/testweb.zip',
source => $app_url,
mode => '0644',
require => File['extract Jboss'],
}

# unpack application
exec { 'unpack app':
command => "unzip /opt/testweb.zip -d ${deploy_path}",
cwd => '/opt',
creates => "${deploy_path}/testweb",
path => ['/usr/bin', '/usr/sbin',],
notify => [ Service['jboss'], Exec['change owner'] ]
}
}

11 changes: 11 additions & 0 deletions modules/java/manifests/init.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Install Java
class java {

$java_version = 'java-1.7.0-openjdk'

package { 'java':
ensure => installed,
name => $java_version,
}
}

83 changes: 83 additions & 0 deletions modules/mjboss/manifests/init.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Install Jboss server
class mjboss {

$jboss_user = 'jboss'
$jboss_group = 'jboss'
$jboss_home = '/opt/jboss-as-7.1.1.Final'
$jboss_url = 'http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.tar.gz'
$archive = '/opt/jboss-as-7.1.1.Final.tar.gz'

# create new group
group { $jboss_group:
ensure => present,
name => $jboss_group,
}

#create new user
user { $jboss_user:
ensure => present,
home => "/home/${jboss_user}",
groups => $jboss_group,
}

# download jboss.tar.gz
file { 'Jboss_file':
ensure => file,
path => $archive,
source => $jboss_url,
owner => $jboss_user,
group => $jboss_group,
mode => '0755',
}

# extract jboss files
exec { 'extract Jboss':
command => "tar xzf ${archive}",
cwd => '/opt',
creates => $jboss_home,
path => ['/usr/bin', '/usr/sbin',],
require => File['Jboss_file'],
}

#create jboss system folder
file {'add jboss_conf':
ensure => directory,
path => '/etc/jboss-as',
owner => 'root',
group => 'root',
mode => '0755',
}

# change ownership
exec { 'change owner':
command => "chown -R jboss:jboss ${jboss_home}",
path => ['/usr/bin', '/usr/sbin',],
require => Exec['extract Jboss'],
}


# add jboss_conf template
file { '/etc/jboss-as/jboss-as.conf':
ensure => file,
content => template('mjboss/jboss_conf.erb'),
owner => 'root',
group => 'root',
mode => '0644',
}

# add jboss init script
file { '/etc/init.d/jboss':
ensure => file,
content => template('mjboss/jboss.erb'),
owner => 'root',
group => 'root',
mode => '0755',
}

# start jboss service
service { 'jboss':
ensure => 'running',
enable => true,
}
}

176 changes: 176 additions & 0 deletions modules/mjboss/templates/jboss.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
#!/bin/sh
#
# JBoss standalone control script
#
# chkconfig: - 80 20
# description: JBoss AS Standalone
# processname: standalone
# pidfile: /var/run/jboss-as/jboss-as-standalone.pid
# config: /etc/jboss-as/jboss-as.conf

# Source function library.
. /etc/init.d/functions

# Load Java configuration.
[ -r /etc/java/java.conf ] && . /etc/java/java.conf
export JAVA_HOME

# Load JBoss AS init.d configuration.
if [ -z "$JBOSS_CONF" ]; then
JBOSS_CONF="/etc/jboss-as/jboss-as.conf"
fi

[ -r "$JBOSS_CONF" ] && . "${JBOSS_CONF}"

# Set defaults.

if [ -z "$JBOSS_HOME" ]; then
JBOSS_HOME=<%= @jboss_home %>
fi
export JBOSS_HOME

if [ -z "$JBOSS_PIDFILE" ]; then
JBOSS_PIDFILE=/var/run/jboss-as/jboss-as-standalone.pid
fi
export JBOSS_PIDFILE

if [ -z "$JBOSS_CONSOLE_LOG" ]; then
JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log
fi

if [ -z "$STARTUP_WAIT" ]; then
STARTUP_WAIT=30
fi

if [ -z "$SHUTDOWN_WAIT" ]; then
SHUTDOWN_WAIT=30
fi

if [ -z "$JBOSS_CONFIG" ]; then
JBOSS_CONFIG=standalone.xml
fi

JBOSS_SCRIPT=$JBOSS_HOME/bin/standalone.sh

prog='jboss-as'

CMD_PREFIX=''

if [ ! -z "$JBOSS_USER" ]; then
if [ -x /etc/rc.d/init.d/functions ]; then
CMD_PREFIX="daemon --user $JBOSS_USER"
else
CMD_PREFIX="su - $JBOSS_USER -c"
fi
fi

start() {
echo -n "Starting $prog: "
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then
echo -n "$prog is already running"
failure
echo
return 1
else
rm -f $JBOSS_PIDFILE
fi
fi
mkdir -p $(dirname $JBOSS_CONSOLE_LOG)
cat /dev/null > $JBOSS_CONSOLE_LOG

mkdir -p $(dirname $JBOSS_PIDFILE)
chown $JBOSS_USER $(dirname $JBOSS_PIDFILE) || true
#$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT 2>&1 > $JBOSS_CONSOLE_LOG &
#$CMD_PREFIX JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT &

if [ ! -z "$JBOSS_USER" ]; then
if [ -x /etc/rc.d/init.d/functions ]; then
daemon --user $JBOSS_USER LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG 2>&1 > $JBOSS_CONSOLE_LOG &
else
su - $JBOSS_USER -c "LAUNCH_JBOSS_IN_BACKGROUND=1 JBOSS_PIDFILE=$JBOSS_PIDFILE $JBOSS_SCRIPT -c $JBOSS_CONFIG" 2>&1 > $JBOSS_CONSOLE_LOG &
fi
fi

count=0
launched=false

until [ $count -gt $STARTUP_WAIT ]
do
grep 'JBoss AS.*started in' $JBOSS_CONSOLE_LOG > /dev/null
if [ $? -eq 0 ] ; then
launched=true
break
fi
sleep 1
let count=$count+1;
done

success
echo
return 0
}

stop() {
echo -n $"Stopping $prog: "
count=0;

if [ -f $JBOSS_PIDFILE ]; then
read kpid < $JBOSS_PIDFILE
let kwait=$SHUTDOWN_WAIT

# Try issuing SIGTERM

kill -15 $kpid
until [ `ps --pid $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ]
do
sleep 1
let count=$count+1;
done

if [ $count -gt $kwait ]; then
kill -9 $kpid
fi
fi
rm -f $JBOSS_PIDFILE
success
echo
}

status() {
if [ -f $JBOSS_PIDFILE ]; then
read ppid < $JBOSS_PIDFILE
if [ `ps --pid $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then
echo "$prog is running (pid $ppid)"
return 0
else
echo "$prog dead but pid file exists"
return 1
fi
fi
echo "$prog is not running"
return 3
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
$0 stop
$0 start
;;
status)
status
;;
*)
## If no parameters are given, print which are avaiable.
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac

18 changes: 18 additions & 0 deletions modules/mjboss/templates/jboss_conf.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# General configuration for the init.d scripts,
# not necessarily for JBoss AS itself.

# The username who should own the process.
#
JBOSS_USER=<%= @jboss_user %>

# The amount of time to wait for startup
#
STARTUP_WAIT=20

# The amount of time to wait for shutdown
#
SHUTDOWN_WAIT=10

# Location to keep the console log
#
# JBOSS_CONSOLE_LOG=/var/log/jboss-as/console.log
6 changes: 6 additions & 0 deletions site.pp
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node 'agent3.bm' {
class { 'java': }
class { 'mjboss': }
class { 'deploy': }
}