(SERVIDOR DE APLICAÇÃO)
JBOSS é um servidor de aplicação JAVA.
- JVM: software que emula CPU e memória para a execução de programas em JAVA. Ao se codificar um programa em Java ele tem a extensão ".java" (código), depois da compilação é gerado um ".class" (ByteCode | binário). Esse ByteCode deve ser interpretado por uma JVM. É dessa maneira que a portabilidade acontece, pois basta que diferentes sistemas operacionais e diferentes hardwares tenham a JVM instalada;
- JRE: Java Runtime Environment. Ambiente necessário para rodar programas Java, incluindo plugins para os Browser. Programas Java que rodam em browsers são conhecidos como Applets. Não fornece alta distribuição de objetos e não tem suporte completo a tecnologia para a Internet (ver). A JRE é composta pela JVM e pelas APIs da J2SE (JVM + APIs = JRE);
- JDK: Java Development Kit, é o SDK (Software Development Kit) do JAVA. É um conjunto de ferramentas, compiladores, depuração de erro, documentação e JRE para a criação de programas em Java. A JDK é composta pela JRE e pelas ferramentas de desenvolvimento (JRE + SDK = JDK). O JDK é necessário para rodar o JBoss, pois ao fazer o deploy de programas Java que contém JSP, o servidor de aplicação converterá JSP em Servlets e usará o JDK para compilar os Servlets. Se não fosse isso, bastaria o JRE para que um Jboss rode uma aplicação em Java;
- JSE e J2SE: Java (2) Standard Edition são APIs com enfoque no desenvolvimento de aplicações Cliente/Servidor;
- JEE e J2EE: Java (2) Enterprise Edition fornece um conjunto completo de APIs para desenvolvimento corporativo e tem o objetivo na integração entre sistemas. Fornece alta distribuição de objetos e suporte completo a tecnologia para a Internet. J2SE + JRE = J2. Volta para aplicações Cliente/Servidor, aplicações WEB etc;
- JME e J2ME: Java (2) Micro Edition. APIs para o desenvolvimento de aplicações móveis, pequenos dispositivos e tecnologias embarcadas. É um JRE com capacidade reduzida;
- HotSpot: parte do JRE que realiza a pré-compilação de trechos do código para agilizar a execução dos programas;
- Garbage Collector: lixeira do JAVA (JRE) que tem a responsabilidade de retirar da memória objetos e dados que não estiverem mais sendo utilizados. Esse recurso não se encontra em outras liguagem como o C ou C++ onde esse responsabilidade recai sobre o programador;
- JBDS: Jboss Developer Studio. É a ferramenta da RedHat para desenvolver aplicações em JAVA para o JBoss. Sua ferramenta principal é o Eclipse;
Variáveis de Ambiente
JAVA=java
JAVA_HOME=/usr/lib/jvm/java
JBOSS_HOME=/opt/jboss/jboss-eap-6.4
JAVA_OPTS='-Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.modules.policy-permissions=true'
PATH=$PATH:$JAVA_HOME/bin:$JBOSS_HOME/bin
INSTALAR O JDK DEVEL
http://www.oracle.com/technetwork/java/javase/downloads/index.html (faça o download do JDK)
# tar -zxvf jdk-7xxx-linux-x64.tar.gz
OU
yum search jdk
yum install java-1.7.0-openjdk (instala o java, inclusido o comando "java" já ficará disponível. Para que o comando "jar" apareça é preciso instalar o "java-1.7.0-openjdk-devel")
OU
apt-cache search jdk | grep -i jdk
apt-get install java-1.7.0-openjdk ()
INSTALAR O JBOSS
# java -jar jboss-eap-6.3.0-installer.jar (modo gráfico)
# java -jar jboss-eap-6.3.0-installer.jar -console (modo texto)
# java -jar jboss-eap-6.3.0-installer.jar auto.xml (instalação automática, obtendo os valores do arquivo "auto.xml"
Desinstalação Server
# java -jar ../$EAP_HOME/uninstaller.jar
CRIAR USUÁRIO
add-user.sh
cat /opt/jboss/jboss-eap-6.4/standalone/configuration/mgmt-groups.properties /opt/jboss/jboss-eap-6.4/standalone/configuration/mgmt-users.properties (arquivos que contém os usuários e grupos do JBOSS)
JBOSS STANDALONE
# standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
# standalone.sh -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management 0.0.0.0
BROWSER - http://IP_do_JBOSS:9990 (Interface de gerenciamento. Será solicitado usuário e senha)
DEPLOYMENT
*.war (aplicação em si)
/opt/jboss/jboss-eap-6.4/standalone/data/content/4f/75e536e32619ea1d9903359f819ff591e4906d/content (ao se adicionar uma aplicação [war] é nesse caminho que ela vai ficar)
/opt/jboss/jboss-eap-6.4/domain/data/content/4f/75e536e32619ea1d9903359f819ff591e4906d/content (ao se adicionar uma aplicação [war] é nesse caminho que ela vai ficar)
/opt/jboss/jboss-eap-6.4/standalone/deployments/ (diretório onde também se pode fazer o deployment de uma aplicação [war])
/opt/jboss/jboss-eap-6.4/domain/deployments/ (diretório onde também se pode fazer o deployment de uma aplicação [war])
CONECTAR REMOTAMENTE COM CLI
/opt/jboss/jboss-eap-6.3/bin/jboss-cli.sh --connect --controller=192.168.122.87
ls /
ls /host=master/
/server-group=test:add(profile=ha,socket-binding-group=ha-sockets) (adicionar um grupo)
/host=master/server-config=server1:add(group=test,auto-start=true,socket-binding-port-offset=0) (adicionar um servidor master no grupo acima)
reload --host=master (reload nas configurações do JBOSS)
reload --restart-servers=true --host=master (restart no JBOSS)
shutdown --host=master
HISTORICO DOS XML - BACKUP GERADO PELO PRÓPRIO JBOSS
/opt/jboss/jboss-eap-6.3/domain/configuration/domain_xml_history/
No servidor que será o master faça:
add-user.sh (opção "a", digite o nome da conta, senha, no group deixe em branco, real "ManagementReal", "use a AS process ... for a slave connecting to the master ..." responda "yes". Uma hash entre tags irá aparecer. Copie isso, pois ele será inserido nos Jboss Slaves. Seria algo do tipo "<secret value="ZHIjd2UkNzIwMjZASmJvc3M=" />")cp domain/configuration/host.xml domain/configuration/host.xml.orig
vi domain/configuration/host.xml (coloque "0.0.0.0")

Restart o Jboss no master
No servidor que será o slave faça:
cp domain/configuration/host.xml domain/configuration/host.xml.origcp domain/configuration/host-slave.xml domain/configuration/host.xml
vi domain/configuration/host.xml



SERVIDOR APACHE
# yum install httpd -y (REDHAT)
Faça o download do mod_cluster http://mod-cluster.jboss.org/downloads (vão existir pacotes binário e do código-fonte. Qualquer um dos dois funcionarão)
# cp mod_cluster_slotmem.so mod_manager.so mod_proxy_cluster.so mod_advertise.so /etc/httpd/modules/
# /etc/httpd/conf.modules.d/02-mod_cluster.conf

# setenforce 0
# systemctl restart httpd
Acesse "http://X.X.X.X:6666/mod_cluster-manager (página de gerenciamento do "mod_cluster")
JBOSS DOMAIN
vi domain/configuration/domain.xml (coloque o 'proxy-list="192.168.122.5:6666"' e o 'instance-id="${jboss.node.name}"', conforme figuras a seguir dentro dos profiles desejado. Geralmente se coloca esses paramentros dentro do profile "ha" e "full-ha". O 'proxy-list="192.168.122.5:6666"' é o IP do Apache com o mod_cluster configurado e o 'instance-id="${jboss.node.name}"' serve para mostrar o hostname ao invés de uma string do gigante gerada pelo próprio JBOSS)


Pare o Jboss Domain e Start novamente
Acesse as aplicações através do Apache "http://X.X.X.X:6666/aplic_01
SERVIDOR APACHE
# yum install httpd -y (REDHAT)
Faça o download do mod_cluster http://mod-cluster.jboss.org/downloads (vão existir pacotes binário e do código-fonte. Qualquer um dos dois funcionarão)
# cp mod_cluster_slotmem.so mod_manager.so mod_proxy_cluster.so mod_advertise.so /etc/httpd/modules/
# /etc/httpd/conf.modules.d/02-mod_cluster.conf

# setenforce 0
# systemctl restart httpd
Acesse "http://X.X.X.X:6666/mod_cluster-manager (página de gerenciamento do "mod_cluster")
JBOSS DOMAIN
vi domain/configuration/domain.xml (coloque o 'proxy-list="192.168.122.5:6666"', conforme figuras a seguir dentro dos profiles desejado. Geralmente se coloca esse paramentro dentro do profile "ha" e "full-ha". O 'instance-id="${jboss.node.name}"' serve para mostrar o hostname ao invés de uma string do gigante gerada pelo próprio JBOSS)


Pare o Jboss Domain e Start novamente
Acesse as aplicações através do Apache "http://X.X.X.X:6666/aplic_01
SERVIDOR APACHE
# yum install httpd -y (REDHAT)
Faça o download do mod_cluster http://mod-cluster.jboss.org/downloads (vão existir pacotes binário e do código-fonte. Qualquer um dos dois funcionarão)
# cp mod_cluster_slotmem.so mod_manager.so mod_proxy_cluster.so mod_advertise.so /etc/httpd/modules/
# /etc/httpd/conf.modules.d/02-mod_cluster.conf

# setenforce 0
# systemctl restart httpd
Acesse "http://X.X.X.X:6666/mod_cluster-manager (página de gerenciamento do "mod_cluster")
JBOSS STANDALONE 01
# mkdir standalone/configuration/original
# cp standalone/configuration/* standalone/configuration/original/
# vi standalone/configuration/standalone-ha.xml (coloque o 'proxy-list="192.168.122.5:6666"' e o 'instance-id="${jboss.node.name}"', conforme figuras a seguir dentro dos profiles desejado. Geralmente se coloca esses paramentros dentro do profile "ha" e "full-ha". O 'proxy-list="192.168.122.5:6666"' é o IP do Apache com o mod_cluster configurado e o 'instance-id="${jboss.node.name}"' serve para mostrar o hostname ao invés de uma string do gigante gerada pelo próprio JBOSS)


Pare o Jboss StandAlone e Start novamente "bin/standalone.sh -c standalone-ha.xml"
Acesse as aplicações através do Apache "http://X.X.X.X:6666/aplic_01
JBOSS STANDALONE 02
# mkdir standalone/configuration/original
# cp standalone/configuration/* standalone/configuration/original/
# vi standalone/configuration/standalone-ha.xml (coloque o 'proxy-list="192.168.122.5:6666"' e o 'instance-id="${jboss.node.name}"', conforme figuras a seguir dentro dos profiles desejado. Geralmente se coloca esses paramentros dentro do profile "ha" e "full-ha". O 'proxy-list="192.168.122.5:6666"' é o IP do Apache com o mod_cluster configurado e o 'instance-id="${jboss.node.name}"' serve para mostrar o hostname ao invés de uma string do gigante gerada pelo próprio JBOSS)


Pare o Jboss StandAlone e Start novamente "bin/standalone.sh -c standalone-ha.xml"
Acesse as aplicações através do Apache "http://X.X.X.X:6666/aplic_01
Arquivo de configuração
Arquivo de configuração
REFERENCIAS https://developer.jboss.org/thread/195631?tstart=0 http://4jboss.blogspot.com.br/2014/05/configurando-o-jboss-eap-62-no-centos.html https://jbossdivers.wordpress.com/2013/01/08/um-pouco-mais-sobre-deploy-no-jboss-as-7/

Referências Bibliográgicas