Wildfly (Jboss EAP 6) : Domain Mode

Domain Mode é uma feature onde o gerenciamento de todas as configurações de instâncias é realizada através de um único ponto. Toda as instâncias gerenciadas pelo Domain Controller são chamadas de Host Controllers e podem ter suas configurações alteradas dependendo da necessidade. Podemos utilizar grupos de instâncias, assim podemos definir grupos instâncias que estão em diferentes hosts.

 

Obs: O Domain Mode não é um ambiente de alta disponibilidade (Cluster) e sim um ambiente de gerência centralizada.

Quando utilizamos Domain Mode três processos separados são iniciados:

  • Process Controller: responsável por gerenciar e start/restartar os processos;
  • Host Controller: um dos Host Controllers é o Domain Controller e os outros são slaves;
  • Server : instância do servidor de aplicação;

Captura de Tela 2014-10-29 às 18.16.06

1) Ambiente :

10.0.0.131 – jboss-dc
10.0.0.132 – jslave-01

Baixe o Wildfly e deixe e descompacte no diretório /opt :

http://download.jboss.org/wildfly/10.0.0.CR2/wildfly-10.0.0.CR2.zip

 

2) Configuração do servidor :

Segue o post onde levante um ambiente Wildfly :

http://fajlinux.com.br/appserver/wildfly-instalando-no-rhel-7/

OBS : Usaremos o Wildfly 10 , este servidor usa o openjdk 1.8 .

 

3) Variáveis do Ambiente :

  • jboss.bind.address: Endereço IP para acesso a aplicacao;
  • jboss.bind.address.management: Endereco IP para gerenciamento remoto eWeb;
  • jboss.management.native.port: Porta de gerenciamento para clientes remotos (CLI, JConsole, etc..)
  • jboss.management.http.port: Porta de acesso gerenciamento Web;
  • jboss.domain.master.address: Endereço IP do Domain Controller;
  • jboss.domain.master.port: Porta de acesso do Domain Controller;

 

4) Configuração do Master – Servidor jmaster :

4.1 ) Usuário do Slave :

Vamos configurar o usuário que fará conexão do slave com o domain chamando o script add-user.sh no diretório bin da aplicação :

 

Caminho :

<Diretório do Jboss>/bin

Captura de Tela 2014-10-31 às 16.06.26

Na imagem acima eu criei o usuário juser01 com a senha 123456 .

 

4.2 ) Configuração do Domain :

A configuração do Domain já vem nativa dentro dos arquivos do Jboss, pois para ele ser Master tem que ter esta configuração no arquivo host-master.

Caminho:

/domain/configuration/host-master.xml

 

<domain-controller>
<local/>
</domain-controller>

 

Inicie o Jboss :

su - juser

bin/domain.sh --host-config=host-master.xml -Djboss.bind.address=10.0.0.131 -Djboss.bind.address.management=10.0.0.131

 

Captura de Tela 2015-10-04 às 12.43.43

 

5) Configuração do Slave :

5.1 ) Configuração do host.xml:

Para configurarmos o slave vamos alterar o bloco da tag “domain-controler” no host.xml no caminho :

/domain/configuration/host.xml

Antes :

<domain-controller>
<remote host="${jboss.domain.master.address}" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm" />
</domain-controller>

 

Depois:

<domain-controller>
<local/>
</domain-controller>

 

5.2) Configuração do host-slave.xml :

Altere a terceira linha do arquivo para :


<host name="jslave01" xmlns="urn:jboss:domain:4.0">

 

OBS : Configuramos o nome jslave, pois é o mesmo nome que adicionamos como usuário no servidor Master.

 

Após configurar o usuário vamos configurar a senha no bloco da tag :


<server-identities>
<secret value="MTIzNDU2"/>
</server-identities>

 

OBS: A senha do usuário só se autentica se for convertida em base64 , para que possamos pegar este valor podemos rodar no servidor local rodando este comando :

echo -n "123456" | openssl enc -base64

 

123456 é a senha que utilizei para cadastras o usuário e foi convertida para MTIzNDU2 .

 

Com o slave configurado vamos iniciar o jboss com o comando :

bin/domain.sh --host-config=host-slave.xml -Djboss.domain.master.address=10.0.0.131-Djboss.domain.master.port=9999 -Djboss.bind.address=10.0.0.132 & 

 

Após iniciarmos podemos observar no console do Master que o jslave01 se registra durante o start .

Captura de Tela 2015-10-04 às 20.00.23

Ao logar no console do domain observamos o jslave-01 conectado ao domain :

Captura de Tela 2015-10-04 às 20.16.57

6) Server Groups :

Server groups são o grupo de instâncias do Jboss / Wildfly . Nessa arquitetura utilizaremos apenas um server group.

Em casos de uso podemos criar um server group para aplicações baseadas em serviço e um para aplicações web.

* Na interface criei pelo caminho Runtime > Server Groups > Add
* Após criação clique no grupo criado > Server > Add

Exemplo :

Captura de Tela 2015-10-04 às 20.36.01

GRP-SVC

Criação do GRP-SVC

Captura de Tela 2015-10-04 às 20.22.59

GRP-WEB

Captura de Tela 2015-10-04 às 20.23.48

6) Testes Finais

Acessando o console do ip do domain podemos observar que no campo server está os servidores e instâncias envolvidas no console, sendo assim podendo gerenciar os servidores direto no console do master .

http://10.0.0.131:9990

Captura de Tela 2015-10-04 às 20.45.07