Instalando WildFly no CentOS

centos7-wildfly_console

Confesso que Java não é meu forte e muito menos uma paixão mas isto aqui é justamente uma atualização e complemento de um documento que produzi faz algum tempo e que, obviamente, seria bom deixar disponível em algum canto.

Como é assunto extenso nesta primeira parte deixarei apenas o servidor de aplicação rodando com WildFly9 (o antigo JBoss AS) utilizando um CentOS7 — estas instruções servem também para o RHEL7 e parcialmente para o JBoss 6 EAP (ele tem um instalador que “simplifica” algumas coisas).

CentOS 7

Por mais que pareça óbvia, a primeira coisa a fazer é instalar o CentOS e como existe bastante material sobre o assunto vou indicar apenas os parâmetros utilizados:

centos7-wildfly_anaconda

Utilizando a mídia para instalação via rede eu ajustei localização, teclado, origem dos pacotes e selecionei o conjunto mínimo necessário (exatamente, nada de ambiente gráfico, o que precisar será instalado).

Uma vez instalado, hora de fazer a primeira atualização:

# yum install deltarpm sudo
# yum update

O deltarpm é um passo opcional mas usá-lo faz com que somente as modificações, e não pacotes inteiros, sejam baixadas durante as atualizações.

Por engano selecionei errada a minha localização — ato falho? Isto se corrige assim:

# timedatectl set-timezone America/Sao_Paulo

OpenJDK 8

Para instalar o JDK, faça:

#  yum install java-1.8.0-openjdk

Há um monte de dependências para resolver mas elas ficarão por conta do yum, o importante é obter isto no final:

# java -version
openjdk version "1.8.0_51"
OpenJDK Runtime Environment (build 1.8.0_51-b16)
OpenJDK 64-Bit Server VM (build 25.51-b03, mixed mode)

Sim, poderia ter usado a JDK da Sun Oracle mas preferi optar pelo OpenJDK (que não requer que eu me cadastre e/ou aceite termos da licença).

WildFly 9

WildFly é o nome com o qual a Red Hat rebatizou em 2014 o JBoss AS para reduzir a confusão entre projeto mantida pela comunidade (JBoss AS) e produto comercializado por eles (JBoss EAP).

Baixei a versão 9.0.1-Final, disponível na área de downloads do sítio do projeto, e a instalação consiste em descompactá-lo no seu “diretório preferido”:

# mkdir -p /opt/wildfly
# cd /opt/
# tar zxvf /root/wildfly-9.0.1.Final.tar.gz

E pronto! Pronto?

Pós-instalação

A partir deste momento já é possível rodar o servidor de aplicações e até considerar o trabalho por concluído mas algumas coisas estão “soltas” e é prudente realizar alguns ajustes antes de dar o conjunto como “pronto para uso”.

Configuração do firewall

Tanto o CentOS, como também o RHEL, possuem um firewall ativado que por padrão só deixa liberada conexões externas de SSH (porta 22).  Para deixar o WildFly também acessível  para o mundo exterior é preciso liberar as portas 8080 e 9990:

# firewall-cmd --zone=public --add-port=8080/tcp --permanent
# firewall-cmd --zone=public --add-port=9990/tcp --permanent
# firewall-cmd --reload

Dependendo da configuração o WildFly pode requerer a liberação de outras portas, como a 8443 (HTTPS), neste caso basta executar a mesma operação.

Criação de usuários

Como nunca é uma boa ideia executar serviços com privilégios de super usuário (“root”), é bom criar um usuário exclusivo para tal função:

# useradd -s /usr/sbin/nologin wildfly
# chown -R wildfly /opt/wildfly-9.0.1.Final

E também um usuário específico para o acesso ao console de administração do Wildfly:

# cd /opt/wildfly-9.0.1.Final/bin
# ./add-user.sh 
What type of user do you wish to add? 
 a) Management User (mgmt-users.properties) 
 b) Application User (application-users.properties)
(a): a
Enter the details of the new user to add.
...

Crie o usuário da sua preferência — eu usei “wildflyadmin”, informe a senha, responda “yes” para a primeira pergunta, “no” para a segunda e o usuário estará criado.

Os usuários do WildFly são armazenados e replicados em cada um dos modos de operação dele em standalone (./standalone/configuration) e domain (./domain/configuration).

Pensando no futuro

Tenho como hábito utilizar links simbólicos para referenciar as versões dos programas, ou seja,  o link “/opt/wildfly-9-stable” (a versão estável) aponta para a versão que acabou de ser instalada (9.0.1 Final), porém tanto “/opt/wildfly” como “/opt/wildfly-9” apontam para o primeiro link:

centos7-wildfly_links

Uma eventual versão 9.0.2 (ou 9.1.x, 10.x.x etc) pode ser baixada, configurada e testada sem a necessidade de mexer na 9.0.1 em execução. A atualização, quando pronta, consistirá em parar o serviço (na versão antiga), editar o link simbólico e executá-lo novamente (na versão nova). E se algo der errado, voltar para a versão anterior fazendo o procedimento inverso.

A partir deste momento usarei apenas “/opt/wildfly” como referência ao local de instalação do WildFly.

Configuração do serviço

O CentOS precisa saber que o WildFly é um serviço, logo:

# cd /etc/init.d
# ln -s /opt/wildfly/bin/init.d/wildfly-init-redhat.sh wildfly

E o arquivo de configuração precisa estar no lugar onde ficam os arquivos de configuração:

# cd /etc/default
# ln -s /opt/wildfly/bin/init.d/wildfly.conf

Duas alterações precisam ser feitas em “wildfly.conf”. A primeira, na linha 12, é remover o comentário que indica qual o usuário utilizado para executar o serviço:

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

A outra é acrescentar no final do arquivo os parâmetros para que ele “escute” em todas as interfaces de rede e não apenas em localhost (o padrão):

...
## Additionals args to include in startup
# JBOSS_OPTS="--admin-only -b 172.0.0.1"
JBOSS_OPTS="-b 0.0.0.0 -bmanagement=0.0.0.0"

Executando o WildFly

Com tudo devidamente configurado:

# service wildfly start

E o resultado será:

centos7-wildfly_homepage

Não esqueça de fazê-lo ser executado automaticamente a cada inicialização:

# chkconfig wildfly on

Finalizando (por enquanto)

Este  é o final da primeira parte, na continuação será a vez de configurar o WildFly para acessar bancos de dados, usarei o MariaDB mas o procedimento é idêntico para qualquer outro gerenciador que for utilizado.

Anúncios

4 comentários sobre “Instalando WildFly no CentOS

  1. Pingback: Instalando WildFly (ex JBoss AS) no CentOS - Peguei do

  2. Pingback: Finalizando a instalação do WildFly | giovannireisnunes

  3. Pingback: O firewall descomplicado | giovannireisnunes

  4. Pingback: Dois Anos! | giovannireisnunes

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s