Instalando O WildFly como serviço em um Servidor Linux

Executar Servidores de Aplicação como serviço é muito comum nos dias de hoje, pela praticidade de gerenciamento e também por ser muito simples a restauração do serviço após o boot do Sistema Operacional.

No decorrer deste capítulo iremos descrever os passos necessários para configurar o WildFly Server como um serviço utilizando o systemd como gerenciador de serviços.

Nas versões anteriores do Wildfly, até as versão 9, os scripts estavam no diretório $JBOSS_HOME/bin/init.d, mas n versão 10 os scripts foram movidos para o diretório $JBOSS_HOME/docs/contrib/scripts, lembrando que os scripts encontrados neste diretório são contribuições de usuários e estão disponíveis na distribuíção do WildFly para serem utilizados como exemplo.

O a criação de um serviço com o systemd é muito simples quando comparado ao init.d. Para conhecer melhor o systemd acesse este link.

Neste capítulo será exemplificado a instalação do serviço utilizando o init.d e o systemd.

Init.d

Executar o WildFly como serviso utilizando o init.d é um tarefa simples, assim como utilizando o systemd que será abordado a seguir. Todos os scripts utilizando estão localizados no diretório $JBOSS_HOME/docs/contrib/scripts/init.d/. Dentro deste diretório podemos ver os seguintes arquivos:

  • wildfly-­init­-redhat.sh : Arquivo a ser utilizado para distribuições Red Hat Enterprise Linux, como RHEL e Centos;

  • wildfly­-init­-debian.sh: Arquivo a ser utilizado para distribuições Debian Linux, como o Debian e Ubuntu por exemplo;

  • wildfly.conf: Por fim, o arquivo de configuração utilizado pelos dois arquivos init descritos acima.

O primeiro passo é copiar o o arquivo de script, de arcordo com sua distribuição Linux, para o diretório /etc/init.d. Como utilizamos o Fedora, iremos executar o seguinte comando:

cp /opt/wildfly/docs/contrib/scripts/init.d/wildfly-init-redhat.sh /etc/init.d/wildfly

Agora precisamos copiar o arquivo de configuração wildfly.conf para onde o script espera que ele esteja, em /etc/default como podemos observar no script copiado anteriormente:

(...)

# Load JBoss AS init.d configuration.
if [ -z "$JBOSS_CONF" ]; then
        JBOSS_CONF="/etc/default/${WILDFLY_NAME}.conf"
fi

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

(...)

Para copiar o arquivo, execute o seguinte comando:

mkdir -p /etc/default
cp /opt/wildfly/docs/contrib/scripts/init.d/wildfly.conf /etc/default

O próximo passo será editar o arquivo wildfly.conf previamente copiado com as seguintes informações:

#Location of Java
JAVA_HOME=/usr/java/jdk1.8.0_45

# Location of WildFly
JBOSS_HOME=/opt/wildfly/

# The username who should own the process.
JBOSS_USER=wildfly

# The mode WildFly should start, standalone or domain
JBOSS_MODE=standalone

# Configuration for standalone mode
JBOSS_CONFIG=standalone.xml

Note que é possível executar em modo domain, além de passar outros parâmetros, como:

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

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

## Location to keep the console log
# JBOSS_CONSOLE_LOG="/var/log/wildfly/console.log"

## Additionals args to include in startup
# JBOSS_OPTS="--admin-only -b 127.0.0.1"

Dando continuidade, o passo seguinte é instalar o wildfly como um serviço utilizando o comando chkconfig.

chkconfig --add wildfly

Em seguida, configurar o nível de inicialização onde o serviço será iniciado:

chkconfig --level 2345 wildfly on

Por fim vamos iniciar o serviço:

sudo service wildfly start

Caso tudo ocorra bem, a seguinte saída deve ser mostrada no console:

sudo service wildfly start
Starting wildfly (via systemctl):                          [  OK  ]

Para encerar o serviço, basta executar o comando:

sudo service wildfly stop

Systemd

O arquivo de configuração do systemd disponibilizado na instalação do WildFly já está pronto para uso, sendo necessário realizar somente alguns passos antes de executá-lo como serviço.

Neste ponto, será necessário ter efetuado os passos descritos no tópico Instalação passo a passo. Com o ambiente pré configurado, siga os passos abaixo:

# mkdir /etc/wildfly
# cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.conf /etc/wildfly/
# cp /opt/wildfly/docs/contrib/scripts/systemd/wildfly.service /etc/systemd/system/
# cp /opt/wildfly/docs/contrib/scripts/systemd/launch.sh /opt/wildfly/bin/
# chmod +x /opt/wildfly/bin/launch.sh
# chown wildfly. /opt/wildfly/bin/launch.sh

Como os scripts já estão pré configurados, depois de executar todos os passos acima, já estamos prontos para iniciar o wildfly.

Primeiramente vamos habilitá-lo para ser executado durante o boot do Sustema Operacional:

# systemctl enable wildfly
# systemctl start wildfly

E para parar o serviço:

# systemctl stop wildfly

Para configurar o serviço do WildFly para usar o modo Domain ao invés do modo Standalone (padrão), edite o arquivo wildfly.service localizado em /etc/wildfly conforme o exemplo abaixo:

# The configuration you want to run
WILDFLY_CONFIG=domain.xml

# The mode you want to run
WILDFLY_MODE=domain

Por padrão o endereço de bind vem configurado como 0.0.0.0, não é uma boa prática deixá-lo com essa configuração, altere o endeço de bind para o endereço de IP do servidor em que o WildFly será executado. Para alterar o endereço de bind edite o mesmo arquivo citado acima da seguinte maneira, como exemplo será utilizado o ip 192.168.1.10:

# The address to bind to
WILDFLY_BIND=192.168.1.10

results matching ""

    No results matching ""