terça-feira, 4 de fevereiro de 2014

Instalando e Configurando Jboos

Instalação


Instalando o JDK 1.7


Gosto de fazer as coisa à moda antiga, aprende-se mais ... Após realizar o download do JDk, realize os seguintes passos.

* Dica: Quem utiliza Ubuntu, execute o passo 1 e 2, depois vá para o passo a passo no final da página. Red Hat e derivados, podem continuar.

1. Verificando a existência de outras máquinas java instaladas (execute)

$ java -version

Caso já exista o Java instalado, você terá uma resposta parecida a esta:
java version "VERSAO INSTALADA"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

2. Se existir alguma versão do Java instalada, terá o seguinte diretório em sua máquina: "/usr/lib/jvm/ (javaversion)". Utilize para descompactar o seu Java baixado, execute:

$ tar -zxvf jdk-7u3-linux-i586.tar.gz
$ mv jdk-7u3-linux-i586 jdk1.7

Após, deverá retornar com a seguinte caminho:
$ pwd
/usr/lib/jvm/Jdk1.7

Obs.: Caso não exista o diretório "/usr/lib/jvm", poderá descompactar o pacote em "/usr/local".

3. Pronto, seu Java 1.7 está instalando, porém, ainda falta declarar algumas variáveis para fazer o seu sistema 'enxergar' o seu JDK1.7 como o padrão.

Localize o arquivo "/etc/profile".

- Por que?
- Por que no Linux, todas as variáveis especificadas neste arquivos serão inicializadas e automaticamente exportadas na inicialização do sistema.

# vim /etc/profile

Adicionar:

JAVA_HOME=/usr/lib/jvm/jdk1.7
PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME
CLASSPATH=$JAVA_HOME/lib/tools.jar
CLASSPATH=.:$CLASSPATH
export PATH JAVA_HOME CLASSPATH


4. Para validar as linhas adicionadas no arquivo Profile, realize o Logout com o seu usuário e retorne ao Prompt. Para verificar se está funcionando, execute:

# echo $PATH

Sua saída deve ser algo do tipo:
/usr/lib/jvm/jdk1.7/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

$ java -version

Sua saída deve ser algo do tipo:
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

Com o Java instalado e funcionando, vamos partir para a instalação do JBoss.

Ubuntu


1. Habilitando o "/etc/alternatives", execute:

$ sudo update-alternatives --install /usr/bin/java java /SEU/java/DIRECTORY/jre/bin/java 3

2. Troque a versão do Java utilizado com o alternatives, execute:

$ sudo update-alternatives --config java

Obs: Verifique o numero do Java 1.7, e digite na opção acima.

3. Testando o seu Java 1.7, execute:

$ java -version * Sua saída deve ser algo do tipo:
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

Com o Java instalado e funcionando, vamos partir para a instalação do JBoss.

Instalando o JBoss AS 7


A instalação do JBoss consiste, basicamente, em descompactar o arquivo "jboss-as-7.1.1.Final.tar.gz" e pronto, o JBoss já está instalado.

Como a instalação é simples, precisamos 'amarrar' bem para ter um ambiente de fácil administração e funcional.

1. Descompactar o JBoss:

$ tar -zxvf jboss-as-7.1.1.Final.tar.gz -C /usr/local
$ mv jboss-as-7.1.1.Final jboss

2. Entendendo a arquitetura e o funcionamento:

O JBoss é iniciado com o Script "standalone.sh" localizado dentro da pasta "bin", que você acabou de descompactar. Este Script consulta os arquivos de configuração contidos dentro da pasta "jboss/standalone/configuration" para iniciar o Servidor.

Darei um 'overview' das principais pastas que vamos utilizar.

Pasta: jboss/standalone

- Contém as principais configurações do Servidor, dentre elas os arquivos:
Guardam configurações de (IP - PORTA - PROTOCOLO E ETC):
standalone-full.xml
standalone.xml
standalone-full-ha.xml
standalone-ha.xml
standalone_xml_history

- Guardam as configurações de usuários do JBoss:
application-roles.properties
logging.properties
application-users.properties
mgmt-users.properties

- jboss/standalone/deployments : Irá conter os seus projetos! Todos os arquivos ".war" colocados neste diretório, sofrerão o Deploy automaticamente.

- jboss/standalone/log : Irá conter o Log de Boot e execução do Servidor JBoss.

- jboss/standalone/lib : Irá conter as extensões carregadas pelo Servidor.

- jboss/standalone/tmp : Irá conter os arquivos temporário gerado pela sua aplicação e pelo servidor.

Pasta: jboss/modules

Contém as libs (módulos). Vamos adicionar os Drives da nossa aplicação dentro deste diretório.

O formato utilizado por esse diretório é: modules/<oracle . exemplo>/jdbc/main/

Dentro desse diretório deverá conter o "modulo.jar" + a instrução em XML para utilização deste módulo, no formato "module.xml". Vamos tratar este ponto com mais detalhe.

Pasta: jboss/bin

Contém os binários para início e administração do seu Servidor JBoss.

Neste artigo, usaremos os Scripts abaixo:
add-user.sh : Adicionar usuários para acessar o JBoss;
standalone.sh : Script de inicialização do servidor JBoss.

3. Configurando o usuário JBoss (sistema)

O processo de instalação do JBoss é relativamente simples, porém, precisamos realizar alguns tratamentos, assim que terminamos de descompactar o JBoss, ele ficará com o usuário root e grupo root, então, mãos à obra.

Crie o usuário com os seguintes parâmetros:

jboss:x:<UUID>:<GUID>::/usr/local/jboss:/bin/nologin


Após, dê as devidas permissões:

# chown -R jboss.jboss /usr/local/jboss
# chmod -R 750 /usr/local/jboss

4. Testando o seu JBoss

Entre no diretório "jboss/bin", e execute o Script "standalone.sh"

# ./standalone.sh

Após ter executado, perderá o seu terminal, pois ele deixará o processo rodando no seu terminal, então, abra outro terminal e execute:

# netstat -nlp | grep java

Você deve ter uma reposta assim:
tcp   0  0 127.0.0.1:9990   0.0.0.0:*     LISTEN   5389/java
tcp   0  0 127.0.0.1:9999   0.0.0.0:*     LISTEN   5389/java
tcp   0  0 127.0.0.1:8080   0.0.0.0:*     LISTEN   5389/java
tcp   0  0 127.0.0.1:4447   0.0.0.0:*     LISTEN   5389/java

Tendo esta reposta, acesse o JBoss via browser utilizando a URL: http://localhost:8080

Feito isso, vá em 'Administration Console', será solicitado seu usuário e senha.

5. Configurando seu usuário

Entre na pasta "/usr/local/jboss/bin" e execute o "add-user.sh". Siga o passo a passo para criar um usuário no JBoss.

Obs.: Para administrar o JBoss, crie um usuário do tipo: Management User

Após ter criado o usuário, entre no browser e acesse o sistema novamente com seu usuário e senha. 

Criando um Controle para o Servidor JBoss


Bom, temos o nosso JBoss instalado.

Já podemos executar o Deploy em nossas aplicações, porém, como bom analistas que somos, não podemos deixar que o Servidor fique 'jogado'.

Toda vez que precisar iniciar o Servidor, vou ter que entrar na pasta BIN e executar o "standanlone.sh"? Não.

Vamos criar uma espécie de Demond do Servidor para verificar o status e deixar o PID salvo em um lugar, onde podemos encontrar rapidamente.

Obs.: Vou disponibilizar o Script de inicialização, o mesmo pode ser usado e modificado, porém, não pode ser alterado o seu cabeçalho.

#
#SCRIPT RESPONSAVEL POR INICIALIZAR O SERVIDOR DO JBOSS
#
#AUTOR : LUCAS COSTA
#DATA 1 - ABR - 2012
#E-MAIL: mxsolucoes@gmail.com
#
#
export TERM=vt100
STAT=$1
if [ -e /var/log/servidorjboss.log ]
then
        sleep 0
else
        touch /var/log/servidorjboss.log
fi
if [ -e /var/run/jboss/jboss.pid ]
then
        sleep 0
else
        touch /var/run/jboss/jboss.pid
        chmod 750 /var/run/jboss/jboss.pid
fi
LOGFILE="/var/log/servidorjboss.log"
STANDALONE="/usr/local/jboss/bin/standalone.sh"
PIDFILE="/var/run/jboss/jboss.pid"
VAR(){
        VERPID=`cat $PIDFILE | xargs`
        CONF=`cat $PIDFILE | wc -l`
}
chamajboss() {
        VAR
[ $CONF -gt 0  ] && verjboss
if [ $CONF = 0 ]
then
        MSG01="INICIANDO SERVIDOR JBOSS"
        $STANDALONE >/dev/null &
        JBOSS_PID01=$!
        sleep 2
        echo $JBOSS_PID01 >> $PIDFILE
        MSG02="SERVIDOR JBOS INICIADO"
        echo $MSG01 >> $LOGFILE
        echo $MSG02 >> $LOGFILE
else
        MSGERRO="ERRO DESCONHECIDO AO INICIAR O SERVIDOR JBOSS"
        echo $MSGERRO >> $LOGFILE
fi
}
#
#
#
#
#FUNCAO DE PARAR O JBOSS
parajboss() {
VAR
if [ $CONF = 0 ]
then
        echo "NAO EXISTE NENHUM SERVIDOR JBOSS RODANDO"
        exit 0
else
        echo -E "Localizando servico Jboss"
        echo -E "Servidor Jboss encontrado, parando o servico"
        for i in $VERPID; do kill -9 $i;done
        echo -E "Servidor parado"
        rm -rf  $PIDFILE
        MSG001="PARANDO SERVIDOR JBOSS"
        MSG001="SERVIDOR JBOSS PARADO"
        echo $MSG001 >> $LOGFILE
        echo $MSG001 >> $LOGFILE
        exit 0
fi
}
#
#
#
#FUCAO DE VERIFICA STATUS DO JBOSS
verjboss() {
VAR
if [ $CONF = 0 ]
then
        echo "NAO EXISTE NENHUM SERVIDOR JBOSS RODANDO"
        exit 0
else
        echo "JA EXISTE SERVIDOR JBOSS RODANDO NOS PIDS: $VERPID" | xargs
        exit 0
fi
}
case $STAT in
        start ) chamajboss ;;
        stop ) parajboss ;;
        status ) verjboss ;;
        *) echo "OPCAO INCORRETA UTILIZE (start|stop|status)" ;;
esac


 Passo - Salve o seu Script dentro da pasta "bin" do JBoss e crie um link para a pasta "init.d":

# ln -s /usr/local/jboss/bin/jbossd /etc/init.d/jbossd

Feito isto, teste o seu Script:

# service jbossd status

* NAO EXISTE NENHUM SERVIDOR JBOSS RODANDO.

# service jbossd start
INICIANDO SERVIDOR JBOSS
SERVIDOR JBOSS INICIADO

# service jboosd status
JA EXISTE SERVIDOR JBOSS RODANDO NOS PIDS: <PID DO SEU PORCESSO>

2º Passo - Feito o Script de inicialização, vamos utilizá-lo de maneira simples para chamar o JBoss quando o seu Servidor executar o reboot, ou precisar ser desligado.

# cd /usr/local/jboss/bin
# touch MTjboss
# echo -E ". /usr/local/jboss/bin/jbossd start" > MTjboss

Verifique em qual nível de execução sua máquina está:

# runlevel
# ln -s MTjboss /etc/rc.<SEU RUNLEVEL>/S96jbossd
# ln -s MTjboss /etc/rc.<SEU RUNLEVEL>/K96jbossd

Feito isso, já temos nosso ambiente 'amarrado'. 

Configurações


Habilitando módulos, Drivers e Data Sources no JBoss

Bom, vamos começar a modular o nosso JBoss AS 7 para nossas aplicações.

Por exemplo, se a sua API realiza um conexão a um banco Oracle para consultar, ou escrever dados, o JBoss não irá oferecer o suporte para sua API, caso você não disponibilize o Driver para realizar esta conexão.

Nesse capítulo, estarei disponibilizando um exemplo de instalação do Driver Oracle.

Como vimos no Overview do JBoss, a pasta "jboss/modules" contém as libs (módulos). Dentro desta pasta utilizamos a seguinte estrutura:

jboss/modules/com/<SEU MODULO>/main/ - A pasta main deve conter o seu módulo no formato .jar.


1º Passo : Criar os diretórios

Para configurar uma base de maneira adequada no JBoss AS 7, é necessário adicionar o Driver JDBC como um módulo.

Para realizar este procedimento, crie uma pasta para colocar o Driver do Oracle:

# mkdir jboss/modules/com/oracle/ojdbc6/main

Baixe o modulo no link: Oracle.com - JDBC

Copie o Driver da Oracle (ojdbc6.jar) para a pasta recém criada, e crie um arquivo "module.xml" com o seguinte conteúdo:

<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
      <resources>
        <resource-root path="ojdbc6.jar">
      </resource-root></resources>
      <dependencies>
        <module name="javax.api">
      </module></dependencies>
</module>


 Passo - Edite o arquivo "$JBOSS_HOME/standalone/configuration/standalone.xml", no modo Standalone, ou o arquivo "$JBOSS_HOME/domain/configuration/domain.xml" no modo Domain.

Procure pela linha <drivers> que é 'filho' de <subsystem xmlns=”urn:jboss:domain:datasources:1.0″> e acrescente o seguinte conteúdo dentro das tags <drivers>…</drivers>:

<driver name="oracle" module="com.oracle.ojdbc6">
      <xa-datasource-class>
        oracle.jdbc.OracleDriver
      </xa-datasource-class>
</driver>


 Passo - Crie um 'datasource' neste mesmo XML:

<datasource jndi-name="java:jboss/datasources/VIVAOLINUXDS" pool-name="OracleDS" enabled="true" jta="true" use-java-context="true" use-ccm="true">
      <connection-url>jdbc:oracle:thin:@localhost:1521:oradb1</connection-url>
      <driver>oracle</driver>
      <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
      <pool>
        <prefill>true</prefill>
        <min-pool-size>0</min-pool-size>
        <max-pool-size>20</max-pool-size>
      </pool>
      <security>
        <user-name>SEU_USUARIO_BANCO</user-name>
        <password>SUA_SENHA_SECRETA</password>
      </security>
</datasource>


Obs.: O parâmetro 'use-java-context', se colocado como 'false', fará com que o nome JNDI fique global (disponível externamente). O 'use-ccm' habilita o Cached Connection Manager.

Para configurações de isolamento de transações, podemos ter os seguintes possíveis valores:

TRANSACTION_READ_UNCOMMITTED,TRANSACTION_READ_COMMITTED,TRANSACTION_REPEATABLE_READ,TRANSACTION_SERIALIZABLE, TRANSACTION_NONE


Para maiores informações sobre o nível de isolamento, dê uma lida neste link: Wikipedia.org - Isolation

Obs.: No Pool, o prefil igual a 'true' já realiza as conexões e preenche o Pool. O 'mix-pool-size' e o 'max-pool-size', definem o número mínimo e máximo de conexões no Pool.

Para mais parâmetros, consulte o XSD do datasource: $JBOSS_HOME/docs/schema/jboss-as-datasources_1_0.xsd

Inicie o JBoss e se aparecer a seguinte mensagem no arquivo de Log:
[org.jboss.as.connector.subsystems.datasources] (Controller Boot Thread) Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 11.2)
2 ...
3 [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) Bound data source 1

. . . Seu módulo já está copilado e pronto para ser utilizado.

O padrão utilizado acima, irá servir de modelo para os outros módulos.

Alterando Configurações de Rede no JBoss

O JBoss, por padrão, trabalha utilizando o Localhost em seus arquivos de configuração.

Podemos alterae estas configurações, inclusive a porta que o programa irá utilizar.

Entre no diretório "jboss/standalone/configuration/", e execute:

# grep localhost *

standalone.xml:            <wsdl-host>${jboss.bind.address:localhost}</wsdl-host>
standalone.xml:            <inet-address value="${jboss.bind.address.management:localhost}"/>
standalone.xml:            <inet-address value="${jboss.bind.address:localhost}"/>
standalone.xml:            <inet-address value="${jboss.bind.address.unsecure:localhost}"/>


Obs.: Como estamos instalando o JBoss do zero, a saída do comando acima será bem maior.

# vim standalone.xml

Para substituir todas as ocorrencias de Localhost pelo seu IP, execute:

:%s/localhost/SEUIP/g

Feito isto, seu JBoss já está respondendo no seu IP.

Tag: estagiariodesuporte, estagiario de suporte

Nenhum comentário:

Postar um comentário