Capítulo 10. Web, Conectores HTTP e Clustering HTTP

10.1. Configuração de um Nó Trabalhador mod_cluster

O mestre é apenas uma vez configurado através do subsistema mod_cluster. Para configurar o subsistema mod_cluster, refira-se ao Configure the mod_cluster Subsystem no Administration and Configuration Guide. Cada nó trabalhador é configurado separadamente, portanto repita este procedimento para cada nó caso você deseje adicioná-lo ao cluster.
Caso você use um managed domain, cada servidor num grupo de servidor é um nó trabalhador que compartilha uma configuração idêntica. Portanto, a configuração é realizada a uma instância do JBoss Enterprise Application Plataform única. Do contrário, as etapas da configuração são idênticas.

Configuração do Nó Trabalhador

  • Caso você use um servidor autônomo, ele deve ser iniciado com o perfil standalone-ha.
  • Caso você use o managed domain, o seu grupo do servidor deve ser o perfil ha ou full-ha e o grupo socket binding ha-sockets ou full-ha-sockets. O JBoss Enterprise Application Plataform lança o grupo do servidor habilitado com cluster, chamado other-server-group, que encontra esses requerimentos.

Nota

Onde os comandos Management CLI são gerados, eles assumem que você use um managed domain. Caso você use o seu servidor autônomo, remova a porção /profile=full-ha dos comandos.

Procedimento 10.1. Configuração do Nó Trabalhador

  1. Configuração das interfaces da rede.

    Por default, as interfaces da rede são padrões ao 127.0.0.1. Cada host físico que o realiza o host tanto no servidor autônomo, ou um ou mais servidores num grupo de servidor, precisa que suas interfaces sejam consideradas para uso do próprio endereço IP público, do qual outros servidores podem ver.
    Para a alteração do endereço IP do host do JBoss Enterprise Application Plataform, você precisa desligar e editar seus arquivos de configuração diretamente. Isto é devido ao Management API que direciona o Management Console e Management CLI baseiar-se no endereço de gerenciamento estável.
    Siga as seguintes etapas para alteração do endereço IP de cada servidor do seu cluster ao endereço IP público mestre.
    1. Desligue o servidor completamente.
    2. Edite o host.xml, que está no EAP_HOME/domain/configuration/ para o managed domain ou o arquivo standalone-ha.xml, que está no EAP_HOME/standalone/configuration/ para o servidor autônomo.
    3. Localize o elemento <interfaces>. Três interfaces são configuradas, management, public e unsecured. Para cada uma delas, altere o valor 127.0.0.1 para o endereço IP externo do host.
    4. Para os hosts que participam num managed domain mas não são o mestre, localize o elemento <host. Perceba que isto não possui o símbolo >, uma vez que isto contém os atributos. Altere o valor de seu atributo de nome a partir do master a um nome único (um nome diferente por escravo). Este nome será usado também pelo escravo para identificar o cluster, portanto faça uma anotação sobre isto.
    5. Para os hosts recém configurados que precisam unir-se ao managed domain, encontre o elemento <domain-controller>. Comente ou remova o elemento <local /> e adicione a linha de comando, alterando o endereço IP (X.X.X.X) ao endereço do domain controller. Esta etapa não é válida ao servidor autônomo.
      <remote host="X.X.X.X" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
      
    6. Salve o arquivo e saia.
  2. Configuração da autenticação para o servidor escravo.

    Cada servidor escravo precisa de um nome de usuário e senha criados no ManagementRealm mestre autônomo ou domain controller. No domain controller ou mestre autônomo, execute o comando EAP_HOME/add-user.sh. Adicione um usuário com o mesmo nome do usuário ao do escravo para o ManagementRealm. Quando você for solicitado se este usuário precisará autenticar à uma instância JBoss AS, por favor responda yes. Segue abaixo uma amostra de uma entrada e saída do comando abaixo, para o escravo chamado slave1 com a senha changeme.
    user:bin user$ ./add-user.sh
    
    What type of user do you wish to add? 
     a) Management User (mgmt-users.properties) 
     b) Application User (application-users.properties)
    (a): a
    
    Enter the details of the new user to add.
    Realm (ManagementRealm) : 
    Username : slave1
    Password : changeme
    Re-enter Password : changeme
    About to add user 'slave1' for realm 'ManagementRealm'
    Is this correct yes/no? yes
    Added user 'slave1' to file '/home/user/jboss-eap-6.0/standalone/configuration/mgmt-users.properties'
    Added user 'slave1' to file '/home/user/jboss-eap-6.0/domain/configuration/mgmt-users.properties'
    Is this new user going to be used for one AS process to connect to another AS process e.g. slave domain controller?
    yes/no? yes
    To represent the user add the following to the server-identities definition <secret value="Y2hhbmdlbWU=" />
    
  3. Copie o elemento Base64-encoded <secret> a partir da saída add-user.sh

    Caso você deseje especificar o valor de senha codificada Base64 para a autenticação, copie o valor do elemento <secret> a partir da última linha do resultado add-user.sh uma vez que você precisará disto na etapa abaixo.
  4. Modifique o security realm do host escravo para uso da nova autenticação.

    1. Reabra o arquivo host.xml ou standalone-ha.xml do host escravo.
    2. Localize o elemento <security-realms>. Isto é onde você configura o security realm.
    3. Você pode especificar o valor secreto em uma das seguintes maneiras:
      • Especifique o valor de senha codificada Based64 no arquivo da configuração.

        1. Adicione o seguinte bloco do código XML diretamente abaixo da linha <security-realm name="ManagementRealm">,
          <server-identities>
              <secret value="Y2hhbmdlbWU="/>
          </server-identities>
                          
          
          
        2. Substitua"Y2hhbmdlbWU=" pelo valor secreto retornado a partir do resultado add-user.sh na etapa anterior.
      • Configure o host para obter a senha a partir do vault.

        1. Use o script vault.sh para gerar a senha mascarada. Ele gerará uma sequência como o seguinte: VAULT::secret::password::ODVmYmJjNGMtZDU2ZC00YmNlLWE4ODMtZjQ1NWNmNDU4ZDc1TElORV9CUkVBS3ZhdWx0.
          Você pode encontrar maiores informações sobre o vault nos vaults da Senha para a seção das Sequências Sensitivas deste guia iniciando aqui: Seção 3.8.1, “Sequências Confidenciais de Segurança nos Arquivos de texto limpo”.
        2. Adicione o seguinte bloco do código XML diretamente abaixo da linha <security-realm name="ManagementRealm">.
          <server-identities>
              <secret value="${VAULT::secret::password::ODVmYmJjNGMtZDU2ZC00YmNlLWE4ODMtZjQ1NWNmNDU4ZDc1TElORV9CUkVBS3ZhdWx0}"/>
          </server-identities>
                          
          
          
          Certifique-se de substituir o valor secreto pela senha mascarada na etapa anterior.

          Nota

          Quando criando uma senha no vault, ela deve ser especificada num texto plano, e não no Based64 codificado.
      • Especifique a senha como uma propriedade do sistema.

        1. Adicione o seguinte bloco do código XML diretamente abaixo da linha <security-realm name="ManagementRealm">
          <server-identities>
              <secret value=${server.identity.password}/>
          </server-identities>
                          
          
          
        2. Quando você especificar a senha como uma propriedade de sistema, você pode configurar o host nas seguintes maneiras:
          • Inicie o servidor inserindo a senha num texto plano como o argumento da linha de comando, por exemplo:
            -Dserver.identity.password=changeme

            Nota

            A senha deve ser inserida num texto plano e será visível a qualquer um que emite um comando ps -ef.
          • Posicione a senha num arquivo de propriedades e passe o URL do arquivo das propriedades como um argumento da linha de comando.
            1. Adicione o par chave/valor a um arquivo de propriedades. Por exemplo:
              server.identity.password=changeme
              
            2. Inicie o servidor como os argumentos da linha de comando
              --properties=URL_TO_PROPERTIES_FILE
              .
    4. Salve e saia do arquivo.
  5. Reinicie o servidor.

    O escravo será agora autenticado ao mestre usando o seu nome do host como o nome de usuário e a sequência criptografada como sua senha.