Configurando Ambiente de Produção no JBoss AS 7.1.3 (JBoss EAP 6.0.1) – Parte 1

Postado em Atualizado em

Olá amigos,

Sempre coloquei aqui no blog dicas para resolver algum determinado problema ou configurar alguma coisa especifica. Hoje decidi fazer algo mais interessante. Vamos configurar um ambiente de produção com CentOS 6.4, Apache HTTP Server,  JBoss AS 7.1.3 (JBoss EAP 6.0.1) + Mod Cluster, e JDK 7. Vou expor nesse post,  pelo menos o minímo para termos um bom ambiente de produção. Se eu esqueçer alguma coisa ou falar bobagem nao deixem de me corrigir.

Esse post vai ser meio longo então decidi dividi-lo em partes para não ficar muito cansativo.

Baixando e Instalando o JDK 7

Java Development Kit é um conjunto de utilitários que permitem criar softwares para a plataforma Java.  Esse kit é composto por compilador e bibliotecas. Existem várias implementações no mercado cada qual com a sua especificidade. Umas são feitas para se comportar melhor com determinado hardware outras são especificas para ambientes de missão crítica. Nós vamos utilizar a Oracle HotSpot que eu acredito que seja a mais utilizada atualmente. Vou deixar abaixo alguns links para mais informações sobre as JDKs.

Para baixar o JDK 7 navegue até a página http://www.oracle.com/technetwork/java/javase/downloads/index.html e escolha a opção Java Platform (JDK). Em seguida você será direcionado para outra página onde deverá aceitar a License Agreement. Baixe a versão jdk-7u17-linux-x64.rpm.

Para instalar o JDK execute o seguinte comando como root:

  rpm -Uvh /path/to/binary/jdk-7u17-linux-x64.rpm

Agora vamos configurar os utilitários java, javaws e javac. Execute os comandos abaixo:

## Java ##
alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_17/jre/bin/java 20000
## Javaws ##
alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.7.0_17/jre/bin/javaws 20000
## Javac ##
alternatives --install /usr/bin/javac javac /usr/java/jdk1.7.0_17/bin/javac 20000
alternatives --install /usr/bin/jar jar /usr/java/jdk1.7.0_17/bin/jar 20000

Para verificar se instalamos corretamente o JKD 7, execute java -version:

java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

A instalação do JDK 7 está finalizada.

Instalando e Configurando o Apache HTTP Server

O Apache é o servidor web mais popular atualmente em todo o mundo. Vamos utilizá-lo como proxy reverso e load balancer. Presumo que você já esteja familiarizado com esses termos.

Para instalar o Apache execute o seguinte comando:

 yum install httpd

O proxímo passo é adicionar os native webserver connectors. Vou deixar aqui o arquivo jboss-eap-native-webserver-connectors-6.0.1-RHEL6-x86_64.zip que contém as bibliotecas necessárias para o funcionamento do mod_cluster. Descompacte o arquivo jboss-eap-native-webserver-connectors-6.0.1-RHEL6-x86_64.zip e copie as seguintes bibliotecas para o diretórios modules do Apache Web Server.

cp jboss-eap-6.0/modules/native/lib64/httpd/modules/mod_advertise.so /etc/httpd/modules/
cp jboss-eap-6.0/modules/native/lib64/httpd/modules/mod_manager.so /etc/httpd/modules/
cp jboss-eap-6.0/modules/native/lib64/httpd/modules/mod_proxy_cluster.so /etc/httpd/modules/
cp jboss-eap-6.0/modules/native/lib64/httpd/modules/mod_slotmem.so /etc/httpd/modules/

Edite o arquivo /etc/httpd/conf/httpd.conf e comente a linha LoadModule proxy_balancer_module modules/mod_proxy_balancer.so ,  para não ocorrer um conflito com LoadModule proxy_cluster_module modules/mod_proxy_cluster.so:

#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

E adicione os módulos para que o Apache “enxergue” o mod cluster:

LoadModule slotmem_module modules/mod_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so

Devemos criar o arquivo  mod_cluster.conf que conterá as configurações do mod_cluster.

Agora em /etc/httpd/conf.d/ crie o arquivo mod_cluster.conf e adicione as configurações abaixo:

<VirtualHost 192.168.0.140:80>

<Directory />
Order deny,allow
Allow from all
</Directory>

KeepAliveTimeout 60
ManagerBalancerName mycluster
MaxKeepAliveRequests 0
ServerAdvertise On

EnableMCPMReceive On

</VirtualHost>

<Location /mod_cluster-manager>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location>

Acesse a url http://localhost/mod_cluster-manager, você deverá ver algo semelhante a imagem abaixo:

modcluster

Por enquando é isso. Até a próxima parte.

Abraços

23 comentários em “Configurando Ambiente de Produção no JBoss AS 7.1.3 (JBoss EAP 6.0.1) – Parte 1

    victor neves disse:
    22 de outubro de 2012 às 9:10

    cool man! =D

    victor neves disse:
    22 de outubro de 2012 às 9:12

    putz! acabei de ver ali no canto :
    “Estatísticas do Blog
    43,791 Acessos”
    legal ver seu blog evoluindo! =] hehe

      Mauricio Magnani respondido:
      22 de outubro de 2012 às 10:30

      E ai Victor pow cara vlw 😀

      Tá mesmo evoluindo vamos ver até onde vai rsrs se todo mundo que passo por aqui desse mais opniões igual a você seria bem melhor 😀 ai eu poderia ver onde tenho que melhorar!

      vlw Man 😀

      Abs

      Mauricio Magnani Jr respondido:
      25 de março de 2013 às 10:34

      Victor agora já tá em 70,206 Views 😀

    netoralves disse:
    22 de outubro de 2012 às 16:40

    Show de bola…belo post.

    No aguardo da parte 2.

    Abraço!!

      Mauricio Magnani respondido:
      22 de outubro de 2012 às 18:05

      Vlw Neto 🙂
      To quase terminando a parte 2 estou fazendo mais alguns testes mas pelo minha previsão acho que vai até a parte 4 pois vou abordar o tuning do JBoss e SO 🙂

      Abs

        netoralves disse:
        24 de outubro de 2012 às 15:51

        Blzz Mauricio, Show maninho !!

        Trabalhei um pouco com o modo standalone, com domain nunca, e tive alguns projetos que precisaram de alguns recursos do domain e alguns clientes usam o EAP, com isso me deparei com alguns problemas em configurar ambientes de homologação, estou usando o EAP 6.0, se tiver algum material complementar ou cursos que possa indicar, por favor !!

        se puder encaminhar por email… netoralves@gmail.com
        Vamos nos falando.. e estou aguardando seus posts…=).

        Absss

        Mauricio Magnani respondido:
        24 de outubro de 2012 às 18:13

        Já mandei algumas coisas que podem ajudar. Qualquer dúvida só me perguntar.
        Abs

    hilner disse:
    6 de novembro de 2012 às 16:12

    boa tarde, saberia dizer como configurar datasource de um banco oracle em cluster? sei que no glassfish tem que ter a ocilib e passo os dois bancos(ips) na string de conexao.

      Mauricio Magnani respondido:
      6 de novembro de 2012 às 16:39

      Olá amigo,
      É bem similiar a isso. No datasource no JBoss AS 7 existe uma propriedade chamada url-delimiter, veja a sua definição: ” Specifies the delimeter for URLs in connection-url for HA datasources” entao é só você passar as urls dos bancos que estão em cluster utlizando um delimitador. Aqui nesse link explica como criar um datasource para oracle http://middlewaremagic.com/jboss/?p=350 acredito que voce tenha que utilizar essa ocilib e passar as uris separadas por esse delimiter.
      Veja outro exemplo: http://www.mastertheboss.com/jboss-datasource/jboss-datasource-ha

      Qualquer dúvida diz ai que posso fazer uns testes e ver se é isso mesmo..
      Abs

    […] post anterior configuramos o Apache, configuramos os módulos do mod_cluster e gerarmos o certificados. Hoje nós […]

    […] Configurando Ambiente de Produção no JBoss AS 7.1.3 (JBoss EAP 6.0.1) – Parte 1 […]

    Mauricio Magnani Jr respondido:
    21 de abril de 2013 às 23:08

    Thread interessante para esse tutorial….

    https://community.jboss.org/message/809468#809468

    Ricardo disse:
    27 de novembro de 2013 às 9:21

    Mauricio, pode me falar onde encontro o arquivo jboss-eap-native-webserver-connectors-6.0.1-RHEL6-x86_64.zip

      Mauricio Magnani Jr respondido:
      28 de novembro de 2013 às 1:28

      Oi Ricardo,

      Esses arquivos só estão disponivels para clientes da RedHat… vou ver se consigo disponibilizar amanha a noite e te aviso!

      Abraços

    Dennys S Alves disse:
    11 de fevereiro de 2014 às 9:37

    O tutorial do (boss-eap-6-clustering) da red hat tem a mesma finalidade desse?

      Mauricio Magnani Jr respondido:
      11 de fevereiro de 2014 às 17:07

      Diria que é algo similar mas acredito que o da Red Hat seja mais completo… hehe

      Abs

        Dennys S Alves disse:
        12 de fevereiro de 2014 às 12:16

        Obrigado Mauricio. Eu configurei conforme o seu tutorial, mas o apache não sobe quando faço um restart ele fica assim:
        [root@lxadm01 opt]# /etc/init.d/httpd restart
        Stopping httpd: [FAILED]
        Starting httpd: [ OK ]
        [root@lxadm01 opt]#

        Não sobe. Eu usei: jboss-eap-native-webserver-connectors-6.2.0-RHEL6-x86_64.zip
        Fiz a cópia das bibliotecas, ex: cp jboss-eap-6.2/modules/system/layers/base/native/lib64/httpd/modules/mod_slotmem.so /etc/httpd/modules/
        Coloquei os 4 modulos e no http.conf e comentei a informa em questão e criei o mod_cluster.conf no conf.d do httpd, neste eu coloquei o Ip na minha máquina. A unica coisa que modifiquei no no httpd.conf foi ServerName para o nome da minha máquina.

        Grato

        Mauricio Magnani Jr respondido:
        14 de fevereiro de 2014 às 11:15

        E ai Mestre conseguiu resolver?

        Vou olhar com calma hje a noite 🙂

    Leonardo Bozi disse:
    19 de março de 2014 às 16:52

    Maurício,
    Excelente turorial, pois me ajudou muito. Obrigado.
    Há muita diferença para a versão mais nova do JBoss EAP, a 6.2?

    Abraço

      Mauricio Magnani Jr respondido:
      21 de março de 2014 às 14:51

      Oi Leonardo Obrigado.

      A grande diferença está no modelo de gerenciamento de usuário em relação a administração utilizando RBAC. Agora podemos utilizar papeis e roles mais facilmente para gerenciar os recursos do servidor.

      Outra mudança interessante foi a maneiro de atualizar o servidor que a partir dessa versão está bem mais simples utilzando JBoss CLI com aplicação de patches para ir do JBoss EAP 6.2.0 para o JBoss EAP 6.2.1

      Abs

Deixe um comentário