16.5.5. Configurer un Worker Node de mod_cluster

Le master n'est configuré qu'une fois, par l'intermédiaire du sous-système de mod_cluster. Pour configurer le sous-système mod_cluster, reportez-vous à Section 16.5.2, « Configurer le sous-système mod_cluster ». Chaque worker node est configurée séparément, alors répétez cette procédure pour chaque nœud que vous souhaitez ajouter au cluster.
Si vous utilisez un domaine géré, chaque serveur de groupe de serveur est un worker node qui partage une configuration identique. Par conséquent, la configuration s'effectue sur un groupe de serveurs. Dans un serveur autonome, la configuration s'effectue sur une seule instance de JBoss Enterprise Application Platform. Les étapes de configuration sont sinon identiques.

Configuration d'un worker node

  • Si vous utilisez un serveur autonome, il devra être démarré par le profile standalone-ha.
  • Si vous utilisez un domaine géré, votre groupe de serveurs devra utiliser le profil ha ou full-ha, et le groupe de liaisons de sockets ha-sockets ou full-ha-sockets. JBoss Enterprise Application Platform est fournie avec un groupe de serveurs à clusterisation activée, nommé other-server-group qui remplit ces prérequis.

Note

Quand vous avez des commandes de Management CLI, celles-ci assument que vous utilisez un domaine géré. Si vous utilisez un serveur autonome, supprimer la portion /profile=full-ha des commandes.

Procédure 16.7. Configurer un worker node

  1. Configurer les interfaces de réseau

    Les interfaces de réseau ont toutes la valeur 127.0.0.1 par défaut. Chaque hôte physique, qui accueille un serveur autonome ou bien un ou plusieurs serveurs au sein d'un groupe de serveurs, a besoin de ses interfaces configurées pour utiliser son adresse IP, que les autres serveurs peuvent apercevoir.
    Pour changer l'adresse IP d'un hôte de JBoss Enterprise Application Platform, vous devrez le fermer et modifier son fichier de configuration directement. C'est parce que l'API de gestion qui actionne la Console de gestion et le Management CLI se fie à une adresse de gestion stable.
    Suivez ces étapes pour changer l'adresse IP sur chaque serveur de votre cluster en votre adresse IP publique de master.
    1. Fermer le serveur complètement.
    2. Modifier soit host.xml, qui se trouve dans EAP_HOME/domain/configuration/ pour un domaine géré, ou bien le fichier standalone-ha.xml, qui se trouve dans EAP_HOME/standalone/configuration/ pour un serveur autonome.
    3. Chercher l'élément <interfaces>. Il y a trois interfaces configurées. Ces interfaces sont management, public, et unsecured. Pour chacune d'entre elles, changer la valeur 127.0.0.1 à l'adresse IP externe de l'hôte.
    4. Pour les hôtes qui participent à un domaine géré, mais qui ne sont pas master, localiser l'élément <host. Notez qu'il n'a pas de symbole de fermeture >, car il contient des attributs. Modifiez la valeur de son nom d'attribut master par un nom unique, avec un nom différent par esclave. Ce nom servira aussi à l'esclave pour identifier au cluster, donc notez bien ceci.
    5. Pour les hôtes nouvellement configurés qui ont besoin de rejoindre un domaine géré, chercher l'élément <domain-controller>. Dé-commenter ou supprimer l'élément <local />, et ajouter la ligne suivante, en changeant l'adresse IP (X.X.X.X) par l'adresse du contrôleur de domaine. Cette étape ne s'applique pas à un serveur autonome.
      <remote host="X.X.X.X" port="${jboss.domain.master.port:9999}" security-realm="ManagementRealm"/>
      
    6. Sauvegarder le fichier et sortir.
  2. Configurer l'authentification pour chaque serveur esclave.

    Chaque serveur esclave a besoin d'un nom d'utilisateur et d'un mot de passe créé dans le ManagementRealm du contrôleur de domaine ou du master autonome. Sur le contrôleur de domaine ou sur le master autonome, exécutez la commande EAP_HOME/add-user.sh. Ajouter un utilisateur avec le même nom d'utilisateur comme esclave, au ManagementRealm. Quand on vous demandera si cet utilisateur doit s'authentifier auprès d'une instance de JBoss AS externe, répondez Oui. Vous trouverez un exemple de l'entrée et de la sortie de la commande ci-dessous, pour un esclave appelé slave1, et un mot de passe 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. Copier l'élément codé-Base64 <secret> à partir de la sortie add-user.sh.

    Si vous prévoyez de spécifier un mot de passe codé-Base64 pour l'authentification, copier l'élément <secret> à partir de la dernière ligne de la sortie add-user.sh car vous en aurez besoin à l'étape suivante.
  4. Modifier le domaine de sécurité de l'hôte esclave pour la nouvelle authentification.

    1. Réouvrir le fichier host.xml ou standalone-ha.xml de l'hôte esclave.
    2. Chercher l'élément <security-realms>. C'est là où vous configurez le domaine de sécurité.
    3. Vous pourrez spécifier la valeur secrète d'une des manières suivantes :
      • Spécifier le mot de passe codé-Base64 dans le fichier de configuration.

        1. Ajouter le bloc suivant de code XML sous la ligne <security-realm name="ManagementRealm">,
          <server-identities>
              <secret value="Y2hhbmdlbWU="/>
          </server-identities>
                          
          
          
        2. Remplacer "Y2hhbmdlbWU=" par la valeur secrète retournée de la sortie add-user.sh lors de l'étape précédente.
      • Configurer l'hôte pour obtenir un mot de passe de l'archivage sécurisé.

        1. Utiliser le script vault.sh pour générer un mot de passe masqué. Cela va créer un string qui ressemblera à ceci : VAULT::secret::password::ODVmYmJjNGMtZDU2ZC00YmNlLWE4ODMtZjQ1NWNmNDU4ZDc1TElORV9CUkVBS3ZhdWx0.
          Vous pourrez trouver plus d'informations sur l'archivage sécurisé dans Password Vaults de la section Sensitive Strings de ce guide, ici : Section 10.12.1, « Sécurisation des chaînes sensibles des fichiers en texte clair ».
        2. Ajouter le bloc de code XML suivant directement sous la ligne <security-realm name="ManagementRealm">.
          <server-identities>
              <secret value="${VAULT::secret::password::ODVmYmJjNGMtZDU2ZC00YmNlLWE4ODMtZjQ1NWNmNDU4ZDc1TElORV9CUkVBS3ZhdWx0}"/>
          </server-identities>
                          
          
          
          Veillez à remplacer la valeur secrète par le mot de passe masqué généré lors de l'étape précédente.

          Note

          Quand vous créez un mot de passe dans l'archivage sécurisé, celui-ci devra être spécifié en texte brut, et non pas codé-Base64.
      • Spécifier le mot de passe en tant que propriété système.

        1. Ajouter le bloc de code XML suivant sous la ligne <security-realm name="ManagementRealm">
          <server-identities>
              <secret value=${server.identity.password}/>
          </server-identities>
                          
          
          
        2. Quand vous spécifiez le mot de passe en tant que propriété système, vous pouvez configurer l'hôte d'une des manières suivantes :
          • Démarrer le serveur en saisissant le mot de passe en texte brut comme argument de ligne de commande, comme par exemple :
            -Dserver.identity.password=changeme

            Note

            Le mot de passe doit être saisi en texte brut et sera visible par quiconque lance la commande ps -ef.
          • Mettez le mot de passe dans un fichier de propriétés et passer l'URL du fichier de propriétés sous forme d'argument de ligne de commande.
            1. Ajouter la paire clé/valeur à un fichier de propriétés. Par exemple :
              server.identity.password=changeme
              
            2. Démarrer le serveur par les arguments de ligne de commande
              --properties=URL_TO_PROPERTIES_FILE
              .
    4. Sauvegarder et sortir du fichier.
  5. Redémarrer le serveur.

    L'esclave va maintenant authentifier le master en utilisant son nom d'hôte comme nom d'utilisateur et le string codifié comme son mot de passe.