Skip to content

Instantly share code, notes, and snippets.

@pauloperez
Forked from sukharevd/wildfly-install.sh
Last active August 29, 2015 14:13
Show Gist options
  • Save pauloperez/213a4a33622b58bac624 to your computer and use it in GitHub Desktop.
Save pauloperez/213a4a33622b58bac624 to your computer and use it in GitHub Desktop.
#!/bin/bash
#title :wildfly-install.sh
#description :The script to install Wildfly 8.x
#more :http://sukharevd.net/wildfly-8-installation.html
#author :Dmitriy Sukharev
#editor :Paulo Perez
#date :20150113
#usage :/bin/bash wildfly-install.sh
WILDFLY_VERSION=8.2.1.Final
WILDFLY_FILENAME=wildfly-$WILDFLY_VERSION
WILDFLY_ARCHIVE_NAME=$WILDFLY_FILENAME.tar.gz
WILDFLY_DOWNLOAD_ADDRESS=http://download.jboss.org/wildfly/$WILDFLY_VERSION/$WILDFLY_ARCHIVE_NAME
INSTALL_DIR=~
WILDFLY_FULL_DIR=$INSTALL_DIR/$WILDFLY_FILENAME
WILDFLY_DIR=$INSTALL_DIR/wildfly
WILDFLY_USER="wildfly"
WILDFLY_SERVICE="wildfly"
WILDFLY_STARTUP_TIMEOUT=30
WILDFLY_SHUTDOWN_TIMEOUT=30
echo "Downloading: $WILDFLY_DOWNLOAD_ADDRESS..."
[ -e "$WILDFLY_ARCHIVE_NAME" ] && echo 'Wildfly archive already exists.'
if [ ! -e "$WILDFLY_ARCHIVE_NAME" ]; then
wget -q $WILDFLY_DOWNLOAD_ADDRESS
if [ $? -ne 0 ]; then
echo "Not possible to download Wildfly."
exit 1
fi
fi
echo "Cleaning up..."
sudo rm -f "$WILDFLY_DIR"
sudo rm -rf "$WILDFLY_FULL_DIR"
sudo rm -rf "/var/run/$WILDFLY_SERVICE/"
sudo rm -f "/etc/init.d/$WILDFLY_SERVICE"
sudo rm -f "$WILDFLY_SERVICE_CONF"
echo "Installation..."
mkdir $WILDFLY_FULL_DIR
tar -xzf $WILDFLY_ARCHIVE_NAME -C $INSTALL_DIR
ln -s $WILDFLY_FULL_DIR/ $WILDFLY_DIR
sudo useradd -s /sbin/nologin $WILDFLY_USER
sudo usermod -a -G $WILDFLY_USER $USER
sudo chown -R $USER:$WILDFLY_USER $WILDFLY_DIR
sudo chown -R $USER:$WILDFLY_USER $WILDFLY_DIR/
echo "Registrating Wildfly as service..."
# if Debian-like distribution
if [ -r /lib/lsb/init-functions ]; then
sudo cp $WILDFLY_DIR/bin/init.d/wildfly-init-debian.sh /etc/init.d/$WILDFLY_SERVICE
sudo sed -i -e 's,NAME=wildfly,NAME='$WILDFLY_SERVICE',g' /etc/init.d/$WILDFLY_SERVICE
WILDFLY_SERVICE_CONF=/etc/default/$WILDFLY_SERVICE
fi
# if RHEL-like distribution
if [ -r /etc/init.d/functions ]; then
sudo cp $WILDFLY_DIR/bin/init.d/wildfly-init-redhat.sh /etc/init.d/$WILDFLY_SERVICE
WILDFLY_SERVICE_CONF=/etc/default/wildfly.conf
fi
# if neither Debian nor RHEL like distribution
if [ ! -r /lib/lsb/init-functions -a ! -r /etc/init.d/functions ]; then
sudo cat > /etc/init.d/$WILDFLY_SERVICE << "EOF"
#!/bin/sh
### BEGIN INIT INFO
# Provides: ${WILDFLY_SERVICE}
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop ${WILDFLY_FILENAME}
### END INIT INFO
WILDFLY_USER=${USER}
WILDFLY_DIR=${WILDFLY_DIR}
case "$1" in
start)
echo "Starting ${WILDFLY_FILENAME}..."
start-stop-daemon --start --background --chuid $WILDFLY_USER --exec $WILDFLY_DIR/bin/standalone.sh
exit $?
;;
stop)
echo "Stopping ${WILDFLY_FILENAME}..."
start-stop-daemon --start --quiet --background --chuid $WILDFLY_USER --exec $WILDFLY_DIR/bin/jboss-cli.sh -- --connect command=:shutdown
exit $?
;;
log)
echo "Showing server.log..."
tail -500f $WILDFLY_DIR/standalone/log/server.log
;;
*)
echo "Usage: /etc/init.d/wildfly {start|stop}"
exit 1
;;
esac
exit 0
EOF
sudo sed -i -e 's,${WILDFLY_USER},'$WILDFLY_USER',g; s,${WILDFLY_FILENAME},'$WILDFLY_FILENAME',g; s,${WILDFLY_SERVICE},'$WILDFLY_SERVICE',g; s,${WILDFLY_DIR},'$WILDFLY_DIR',g' /etc/init.d/$WILDFLY_SERVICE
fi
sudo chmod 775 /etc/init.d/$WILDFLY_SERVICE
if [ ! -z "$WILDFLY_SERVICE_CONF" ]; then
echo "Configuring service..."
sudo touch $WILDFLY_SERVICE_CONF
sudo chown -R $USER:$WILDFLY_USER $WILDFLY_SERVICE_CONF
sudo chmod 775 $WILDFLY_SERVICE_CONF
echo JBOSS_HOME=\"$WILDFLY_DIR\" >> $WILDFLY_SERVICE_CONF
echo JBOSS_USER=$USER >> $WILDFLY_SERVICE_CONF
echo STARTUP_WAIT=$WILDFLY_STARTUP_TIMEOUT >> $WILDFLY_SERVICE_CONF
echo SHUTDOWN_WAIT=$WILDFLY_SHUTDOWN_TIMEOUT >> $WILDFLY_SERVICE_CONF
fi
sudo mkdir /var/run/wildfly
sudo chown -R $USER:$WILDFLY_USER /var/run/wildfly
sudo mkdir /var/log/wildfly
sudo chown -R $USER:$WILDFLY_USER /var/log/wildfly
sudo service $WILDFLY_SERVICE start
echo "Done."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment