Jika pada tutorial sebelumnya (DI SINI dan DI SINI) saya pernah menulis cara melakukan instalasi JBoss atau WildFly secara manual sebelum melakukan instalasi EJBCA, kali ini saya ingin membagikan cara yang lebih mudah untuk melakukannya, yaitu dengan menggunakan script wildfly. Jadi sekali menekan tombol eksekusi, maka jboss atau wildfly sudah langsung terpasang dan running dengan baik
Script wildfly ini sendiri secara tidak sengaja saya temukan di github seseorang yang saya lupa namanya. jadi kalau kamu merasa ini adalah script wildfly yang kalian buat, langsung komen di kolom komentar ya biar saya tuliskan credit-nya di postingan ini.
Tanpa berlama-lama lagi, berikut ini adalah script-nya:
vi script_wildfly.sh
#!/bin/bash #title :wildfly-install.sh #description :The script to install Wildfly 10.x #usage :/bin/bash wildfly-install.sh #tested-version1 :10.0.0.Final #tested-distros1 :Ubuntu 15.10; Debian 7,8; CentOS 7; Fedora 22 #tested-version2 :10.1.0.Final #tested-distros2 :Debian 8, Centos 6 WILDFLY_VERSION=10.1.0.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=/opt WILDFLY_FULL_DIR=$INSTALL_DIR/$WILDFLY_FILENAME WILDFLY_DIR=$INSTALL_DIR/wildfly WILDFLY_USER="wildfly" WILDFLY_SERVICE="wildfly" WILDFLY_MODE="standalone" WILDFLY_ADMIN_USER="admin" WILDFLY_ADMIN_PASS="nimda" WILDFLY_STARTUP_TIMEOUT=240 WILDFLY_SHUTDOWN_TIMEOUT=30 #SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #if [[ $EUID -ne 0 ]]; then # echo "This script must be run as root." # exit 1 #fi 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..." rm -f "$WILDFLY_DIR" rm -rf "$WILDFLY_FULL_DIR" rm -rf "/var/run/$WILDFLY_SERVICE/" rm -f "/etc/init.d/$WILDFLY_SERVICE" echo "Installation..." mkdir $WILDFLY_FULL_DIR tar -xzf $WILDFLY_ARCHIVE_NAME -C $INSTALL_DIR ln -s $WILDFLY_FULL_DIR/ $WILDFLY_DIR useradd -s /sbin/nologin $WILDFLY_USER chown -R $WILDFLY_USER:$WILDFLY_USER $WILDFLY_DIR chown -R $WILDFLY_USER:$WILDFLY_USER $WILDFLY_DIR/ #mkdir -p /var/log/$WILDFLY_SERVICE ${WILDFLY_DIR}/bin/add-user.sh -u "${WILDFLY_ADMIN_USER}" -p "${WILDFLY_ADMIN_PASS}" OPTS1='JAVA_OPTS="$JAVA_OPTS -Djboss.bind.address.management=0.0.0.0 -Djboss.bind.address=0.0.0.0 -Djboss.http.port=8080"' grep "${OPTS1}" ${WILDFLY_DIR}/bin/standalone.conf || echo "${OPTS1}" >> ${WILDFLY_DIR}/bin/standalone.conf echo "Registrating Wildfly as service..." # if should use systemd if [ -x /bin/systemctl ]; then # Script from $WILDFLY_DIR/docs/contrib/scripts/systemd/launch.sh didn't work for me cat > $WILDFLY_DIR/bin/launch.sh << "EOF" #!/bin/sh if [ "x$WILDFLY_HOME" = "x" ]; then WILDFLY_HOME="/opt/wildfly" fi if [ "x$1" = "xdomain" ]; then echo 'Starting Wildfly in domain mode.' $WILDFLY_HOME/bin/domain.sh -c $2 -b $3 #>> /var/log/$WILDFLY_SERVICE/server-`date +%Y-%m-%d`.log else echo 'Starting Wildfly in standalone mode.' $WILDFLY_HOME/bin/standalone.sh -c $2 -b $3 #>> /var/log/$WILDFLY_SERVICE/server-`date +%Y-%m-%d`.log fi EOF # $WILDFLY_HOME is not visible here sed -i -e 's,WILDFLY_HOME=.*,WILDFLY_HOME='$WILDFLY_DIR',g' $WILDFLY_DIR/bin/launch.sh #sed -i -e 's,$WILDFLY_SERVICE,'$WILDFLY_SERVICE',g' $WILDFLY_DIR/bin/launch.sh chmod +x $WILDFLY_DIR/bin/launch.sh cp $WILDFLY_DIR/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/$WILDFLY_SERVICE.service WILDFLY_SERVICE_CONF=/etc/default/$WILDFLY_SERVICE # To install multiple instances of Wildfly replace all hardcoding in systemd file sed -i -e 's,EnvironmentFile=.*,EnvironmentFile='$WILDFLY_SERVICE_CONF',g' /etc/systemd/system/$WILDFLY_SERVICE.service sed -i -e 's,User=.*,User='$WILDFLY_USER',g' /etc/systemd/system/$WILDFLY_SERVICE.service sed -i -e 's,PIDFile=.*,PIDFile=/var/run/wildfly/'$WILDFLY_SERVICE'.pid,g' /etc/systemd/system/$WILDFLY_SERVICE.service sed -i -e 's,ExecStart=.*,ExecStart='$WILDFLY_DIR'/bin/launch.sh $WILDFLY_MODE $WILDFLY_CONFIG $WILDFLY_BIND,g' /etc/systemd/system/$WILDFLY_SERVICE.service systemctl daemon-reload #systemctl enable $WILDFLY_SERVICE.service fi # if non-systemd Debian-like distribution if [ ! -x /bin/systemctl -a -r /lib/lsb/init-functions ]; then cp $WILDFLY_DIR/docs/contrib/scripts/init.d/wildfly-init-debian.sh /etc/init.d/$WILDFLY_SERVICE sed -i -e 's,NAME=wildfly,NAME='$WILDFLY_SERVICE',g' /etc/init.d/$WILDFLY_SERVICE WILDFLY_SERVICE_CONF=/etc/default/$WILDFLY_SERVICE fi # if non-systemd RHEL-like distribution if [ ! -x /bin/systemctl -a -r /etc/init.d/functions ]; then cp $WILDFLY_DIR/docs/contrib/scripts/init.d/wildfly-init-redhat.sh /etc/init.d/$WILDFLY_SERVICE WILDFLY_SERVICE_CONF=/etc/default/wildfly.conf chmod 755 /etc/init.d/$WILDFLY_SERVICE fi # if neither Debian nor RHEL like distribution if [ ! -x /bin/systemctl -a ! -r /lib/lsb/init-functions -a ! -r /etc/init.d/functions ]; then 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=${WILDFLY_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 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 chmod 755 /etc/init.d/$WILDFLY_SERVICE fi if [ ! -z "$WILDFLY_SERVICE_CONF" ]; then echo "Configuring service..." echo JBOSS_HOME=\"$WILDFLY_DIR\" > $WILDFLY_SERVICE_CONF echo JBOSS_USER=$WILDFLY_USER >> $WILDFLY_SERVICE_CONF echo WILDFLY_HOME=\"$WILDFLY_DIR\" >> $WILDFLY_SERVICE_CONF echo WILDFLY_USER=\"$WILDFLY_USER\" >> $WILDFLY_SERVICE_CONF echo STARTUP_WAIT=$WILDFLY_STARTUP_TIMEOUT >> $WILDFLY_SERVICE_CONF echo SHUTDOWN_WAIT=$WILDFLY_SHUTDOWN_TIMEOUT >> $WILDFLY_SERVICE_CONF echo WILDFLY_CONFIG=$WILDFLY_MODE.xml >> $WILDFLY_SERVICE_CONF echo WILDFLY_MODE=$WILDFLY_MODE >> $WILDFLY_SERVICE_CONF echo WILDFLY_BIND=0.0.0.0 >> $WILDFLY_SERVICE_CONF fi echo "Done."
Catatan untuk script wildfly di atas:
- Silakan menyesuaikan versi WildFly dengan yang kalian butuhkan. Ubah pada bagian WILDFLY_VERSION
- Saat mengeksekusi script widlfly di atas, kalian juga akan langsung melakukan instalasi admin GUI-nya. Silakan tentukan username dan password untuk admin GUI tersebut pada bagian WILDFLY_ADMIN_USER dan WILDFLY_ADMIN_PASS
- Port yang akan digunakan oleh wildfly atau jboss setelah berjalan (pada script ini) adalah 8080 dan 9990 untuk web console

port yang digunakan oleh service wildfly - Untuk mengeksekusi script wildfly di atas, jalankan perintah sh script_wildfly.sh dan pastikan hasil akhirnya DONE

Contoh hasil eksekusi yang gagal - Sebelum mengeksekusi script tersebut, pastikan JAVA sudah terpasang di server kalian. Untuk melakukan instalasi JAVA di CentOS, silakan jalankan perintah berikut:
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
Instalasi openJDK 8 - Pastikan yang kalian gunakan adalah JAVA 8 ya. Bila terdapat 2 atau lebih versi JAVA, silakan memilihnya dengan cara mengetikkan perintah:
alternatives --config java
Memilih JAVA 8 - Untuk melihat versi JAVA yang kalian gunakan, ketikkan perintah:
java -version
versi JAVA - Setelah JAVA 8 terinstal, kita akan sedikit me-replace beberapa file yang ada di /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/security. 2 file yang harus di replace adalah local_policy.jar dan US_export_policy.jar. Silakan mengunduhnya DI SINI dan lakukan hal berikut:
cd /home/user/Downloads unzip jce_policy-8.zipcp jce_policy-8/UnlimitedJCEPolicyJDK8/local_policy.jar /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/security cp jce_policy-8/UnlimitedJCEPolicyJDK8/US_export_policy.jar /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/security
- Untuk melihat status dari wildfly, apakah berjalan atau tidak, pasca eksekusi script wildfly, ketikkan perintah berikut:
service wildfly status
Melihat status wildfly
Ya, itu tadi sedikit tips untuk mempermudah kalian dalam melakukan instalasi wildfly atau jboss. Semoga informasi di atas bisa berguna ya.
Jika ada pertanyaan, jangan ragu untuk menulisnya di kolom komentar. Sampai jumpa di tutorial selanjutnya 🙂
