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;
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
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-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
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 :
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 .
Ao logar no console do domain observamos o jslave-01 conectado ao domain :
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 :
GRP-SVC
Criação do GRP-SVC
GRP-WEB
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