quinta-feira, 29 de março de 2012

Jboss 7.1 + CentOS 6.2

Buenas!

Pessoal, por esses dias precisei fazer uma implementação do Jboss 7.1 em cima de um CentOS 6.2 x86_64.
Bom, dei uma olhada na net se já havia alguma documentação mais prática para esse cenário, como não encontrei algo atualizado resolvi compartilhar meus passos.

Basicamente os passos são:
1 - Instalação mínima do CentOS
2 - Instalação de algumas dependências.
3 - Instalação do JDK.
4 - Instalação do Jboss.
5 - Configuração do serviço Jboss.
6 - Configurações do Jboss.

1 - Instalação mínima do CentOS.

Basicamente é instalar o SO sem qualquer pacote desnecessário. No menu de instalação do CentOS existe a opção "Minimal". Escolha ela e mande bala.

2 - Instalação de algumas dependências.

Esse ponto é opcional, mas eu costumo fazer para facilizar o trabalho e agora e posteriormente.

yum install vim tcpdump iptraf wget gunzip
yum upgrade

3 - Instalação do JDK.

Pode ser usado o OpenJDK ou o JDK da Sun. Eu preferi colocar o JDK da Sun devido a maior demanda deste por parte dos programadores que conheço.

- Download do JDK:

Essa é a última versão enquanto escrevo esse artigo.

- Instale o RPM:
rpm -ivh jdk-7u3-linux-x64.rpm

Ele deve instalar a estrutura principal em /usr/java/jdk*
OBS.: Onde eu coloco *, ajuste de acordo com o nome correto da pasta.

Uma prática legal é criar link simbólico padrão para o jdk. Dessa forma, sempre que precisar atualizar bastará alterar o link. Nesse exemplo criei uma pasta em /opt chamada java:

mkdir /opt/java

Dentro dessa pasta criei um link para o jdk instalado.

cd /opt/java
ln -s /usr/java/jdk* jdk

- Criar as variáveis de ambiente
cd /etc/profile.d

Cria o arquivo java.sh  e colocar o conteúdo abaixo:
vim java.sh

################
JAVA_HOME=/opt/java/jdk
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$JAVA_HOME/lib
LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amb64

export JAVA_HOME PATH CLASSPATH LD_LIBRARY_PATH
################

chmod 755 java.sh

4 - Instalação do Jboss

- Fazer o download da última versão:

- Descompacte em um lugar de sua escolha:
No meu caso decompactei em uma área reservada montada em /storage

cd /storage
gunzip jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip

Assim como o JDK, criaremos um link para essa pasta:
cd /opt/java
ln -s /storage/jboss-as-7.1.1.Final jboss

- Criar as variáveis de ambiente:
cd /etc/profile.d

Criar o arquivo jboss.sh e colocar o conteúdo abaixo:
vim jboss.sh

################
JBOSS_HOME=/opt/java/jboss
PATH=$PATH:$JBOSS_HOME/bin

export JBOSS_HOME PATH
################ 

chmod 755 jboss.sh

- Criar usuário para executar o Jboss:
useradd jboss
passwd jboss

5 - Configuração do serviço Jboss. 

Esse passo é para criarmos um script de inicialização do Jboss, ou seja, padronizarmos a aplicação.
O próprio Jboss já vem com o exemplo de script para o init.d, usaremos ele fazendo apenas alguns ajustes.

cd /etc/init.d
cp -a  /opt/java/jboss/bin/init.d/jboss-as-standalone.sh jboss

Agora precisamos apenas ajustar a variável JBOSS_HOME nesse script. Ela fica na linha 28.
vim jboss
JBOSS_HOME=/opt/java/jboss

A documentação oficial sugere a criação de uma pasta para colocar o conf de inicialização:

mkdir /etc/jboss-as
cd /etc/jboss-as
cp -a /opt/java/jboss/bin/init.d/jboss-as.conf .

OBS.: Isso não influencia no funcionamento do Jboss. É apenas para o script de inicialização.

Nesse arquivo, apenas descomentei a variável JBOSS_USER colocando o usuário criado para o jboss.
No meu caso:

JBOSS_USER=jboss

- Criar entrada no chkconfig:
chkconfig --add jboss
chkconfig jboss on

6 - Configurações do Jboss.
 
Por último precisamos ajustar as permissões de acesso ao Jboss.
Inicialmente basta publicarmos a console de gerenciamento dele para uma interface acessível remotamente.
OBS.: Por padrão ela vem publicada apenas em localhost.

cd /opt/java/jboss/standalone/configuration/
vim standalone.xml

Perto da linha 275 edite o endereço das interfaces "public" e "management":

################
    <interfaces>
       <interface name="management">
           <inet-address value="${jboss.bind.address.management:0.0.0.0}"/>
        </interface>
        <interface name="public">
            <inet-address value="${jboss.bind.address:0.0.0.0}"/>
        </interface>
        <!-- TODO - only show this if the jacorb subsystem is added  -->
        <interface name="unsecure">
            <!--
              ~  Used for IIOP sockets in the standard configuration.
              ~                  To secure JacORB you need to setup SSL
              -->
            <inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
        </interface>
    </interfaces>

################

Assim você já conseguirá acessar e usar o seu jboss, mas ainda aconselho fortemente ler as dicas de segurança no endereço abaixo (em referências).

Pessoal, desculpe se eu esquecer algum detalhe mas escrevi bem rápido com a maioria das informações de cabeça (fiz a instalação esses dias). Se lembrar de mais alguma informação vou colocando aqui e se verificarem que esqueci algo, por favor, fiquem a vontade para contribuir.

Em breve pretendo publicar algo sobre hardening em Jboss.

Abraço!

Referências adicionais:

Nenhum comentário:

Postar um comentário