Recherche de site Web

WildFly 8 - Un nouveau serveur d'applications JBoss amélioré pour Linux


Comme nous le savons tous, JBoss AS a été renommé WildFly. De nombreuses nouvelles fonctionnalités ont été ajoutées et de nombreuses mises à niveau. Enfin, WildFly 8.0.0 Final est sorti le 11 février 2014. Le responsable du projet WildFly, Jason Greene, a annoncé la même chose.

WildFly 8 est le serveur d'applications open source compatible Java EE 7 de Red Hat. Les principales fonctionnalités sont les suivantes :

Compatibilité Java EE 7

Le plus grand changement est que WildFly 8 est désormais officiellement certifié Java EE7.

Serveur Web haute performance

Undertow est un nouveau serveur Web hautes performances écrit en Java. Cela a maintenant été implémenté dans WildFly 8. Celui-ci est vraiment conçu pour un débit et une évolutivité élevés et peut gérer des millions de connexions. Le cycle de vie d'Undertow est entièrement contrôlé par l'application d'intégration. Ceci est extrêmement léger avec un pot principal d'une taille de 1 Mo et un serveur intégré utilisant moins de 4 Mo d'espace de stockage. C'est vraiment génial.

Réduction de 3 ports

Puisqu'il utilise Undertow qui prend en charge la mise à niveau HTTP, ce qui permettra de multiplexer plusieurs protocoles sur un seul port HTTP. WildFly 8 a déplacé presque tous ses protocoles pour qu'ils soient multiplexés sur deux ports HTTP : l'un est le port de gestion et l'autre est le port d'application. Il s'agit d'un véritable changement et d'un avantage majeur pour les fournisseurs de cloud (tels qu'OpenShift) qui exécutent des centaines, voire des milliers d'instances sur un seul serveur. Au total, il dispose de deux ports par défaut pour la configuration : 9990 (Console d'administration Web) et 8080 (Console d'application).

Contrôle d'accès et audit basés sur les rôles de gestion

C'est la chose nouvelle et intéressante implémentée dans WildFly 8. En l'utilisant, nous pouvons créer différents utilisateurs et attribuer ceux-ci à différents rôles selon les besoins. Je vous montrerai plus tard avec des captures d'écran.

Enregistrement

L'API de gestion prend désormais en charge la possibilité de répertorier et d'afficher les fichiers journaux disponibles sur un serveur. Désormais, nous avons un attribut appelé « add-logging-api-dependencies » disponible pour tout type de déploiements dans lesquels nous souhaitons ignorer la journalisation des conteneurs. Cela désactivera l'ajout des dépendances implicites de journalisation du serveur. Nous avons une autre option, c'est-à-dire que nous pouvons utiliser un jboss-deployment-structure.xml pour exclure le sous-système de journalisation. Grâce à cela, cela aidera à empêcher le sous-système de journalisation de passer par tout déploiement.

Nous pouvons également utiliser un autre paramètre, à savoir use-deployment-logging-config, pour activer/désactiver le traitement des fichiers de configuration de journalisation au sein d'un déploiement.

Remarque : La propriété système que nous utilisions pour désactiver par journalisation est obsolète à partir de cette version.

Regroupement

Encore une fois, un grand changement est un regroupement. Toutes les fonctionnalités liées à la prise en charge du clustering ont été modifiées dans WildFly 8 et incluent les éléments ci-dessous :

  1. La session Web distribuée a été optimisée pour cela avec le nouveau serveur Web basé sur Java, à savoir Undertow.
  2. Prise en charge de mod_cluster pour Undertow.
  3. Capacités SSO distribuées optimisées (Single Sign-On) et prise en charge d'Undertow.
  4. Implémentation nouvelle/optimisée de la mise en cache distribuée @Stateful EJB.
  5. WildFly 8 a ajouté une nouvelle API de clustering publique.
  6. Pour créer des services singleton, il fournit de nouvelles API publiques.
Améliorations de la CLI

La configuration CLI a également été améliorée. Vous savez, tous les administrateurs adorent travailler sur CLI ;). Ainsi, nous pouvons maintenant créer un alias pour un serveur particulier, puis utiliser cet alias chaque fois que nous souhaitons nous connecter à ce serveur à l’aide de la commande connect.

Il y a encore de nombreuses améliorations et mises à jour effectuées dans WildFly 8. Vous pouvez toutes les vérifier sur :

  1. http://wildfly.org/news/2014/02/11/WildFly8-Final-Released/

Installation de WildFly 8 sous Linux

Avant de poursuivre l'installation, assurez-vous que Java EE 7 est installé sur votre système. WildFly 8 ne fonctionnera pas avec les révisions précédentes. Veuillez suivre le guide ci-dessous pour installer Java EE 7 sur les systèmes Linux.

  1. Installer JDK/JRE 7u25 sous Linux

Étape 1 : Téléchargement de WildFly 8

Utilisez le lien suivant pour télécharger le dernier fichier zip WildFly.

  1. http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

Vous pouvez également utiliser la commande « wget » pour télécharger directement sur la ligne de commande.

[root@tecmint]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

Copiez le fichier zip vers n'importe quel emplacement préféré (par exemple « /data/ » dans mon cas) et extrayez-le à l'aide de la commande « unzip ».

[root@tecmint]# cp wildfly-8.0.0.Final.zip /data/
[root@tecmint]# cd /data/
[root@tecmint data]# unzip wildfly-8.0.0.Final.zip

Étape 2 : Définition des variables d'environnement

Définissez maintenant quelques variables d'environnement. Vous pouvez les définir au niveau du système ou dans vos fichiers de configuration. Ici, je configure les fichiers de configuration standalone.sh et standalone.conf dans le dossier « bin ».

[root@tecmint data]# cd wildfly-8.0.0.Final
[root@tecmint data]# cd bin/

Ajoutez ces deux lignes suivantes aux fichiers standlone.sh/standlone.conf. Veuillez spécifier votre emplacement d'installation WildFly et votre emplacement Java Home.

JBOSS_HOME=”/data/wildfly-8.0.0.Final”
JAVA_HOME=”/data/java/jre7/bin/java”

Remarque : Pour l'ensemble du système, vous pouvez le définir dans le fichier « /etc/profile ».

Étape 3 : Démarrage de WildFly 8

Maintenant, démarrez le serveur, c'est-à-dire pour le mode autonome, utilisez « standalone.sh » et pour le mode domaine, utilisez « domain.sh ».

[root@tecmint bin]# ./standalone.sh
[root@tecmint bin]# ./domain.sh

Mais ici, je démarre en mode autonome. Par défaut, il démarrera par le fichier « standalone.xml », mais vous pouvez également commencer avec une autre configuration en utilisant l'option « –server-config ».

Comme ci-dessous, je démarre le serveur avec « standalone-full-ha.xml » et ce fichier est présent dans « $JBOSS_HOME/standalone(profile)/configuration/ ».

[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
Exemple de sortie
Calling "/data/wildfly-8.0.0.Final/standalone/configuration/standalone.conf"
Setting JAVA property to "/data/java/jre7/bin/java"
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "/data/wildfly-8.0.0.Final"

  JAVA: "/data/java/jre7/bin/java"

  JAVA_OPTS: "-client -Dprogram.name=standalone.sh -Xms64M -Xmx512M -XX:MaxPerm
Size=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"

===============================================================================

13:55:26,403 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:55:33,812 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:55:35,481 INFO  [org.jboss.as] (MSC service thread 1-1) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:55:58,646 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
...........
13:56:22,778 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
13:56:22,794 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
13:56:22,794 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 64534ms - Started 229 of 356 services (172 services are lazy, passive or on-demand)

Étape 4 : Accès à WildFly 8

Vous pouvez maintenant pointer votre navigateur vers « http://localhost:8080 » (si vous utilisez le port http configuré par défaut), ce qui vous amène à l'écran de bienvenue.

À partir de là, vous pouvez accéder aux guides de documentation de la communauté WildFly et à un accès amélioré à la console d'administration Web.

Étape 5 : Gérer WildFly 8

WildFly 8 fournit deux consoles d'administration pour gérer l'instance en cours d'exécution :

    1. Console d'administration basée sur le Web
    2. interface de ligne de commande

Avant de vous connecter à la console d'administration ou à distance en utilisant la ligne de commande, vous devrez créer un nouvel utilisateur à l'aide du script « add-user.sh » dans le dossier bin.

Ensuite, allez dans le répertoire 'bin', définissez 'JBOSS_HOME' dans add-user.sh (si la variable n'est pas définie sur les bases du système) et créez un utilisateur comme ci-dessous.

[root@tecmint bin]# ./add-user.sh

Une fois le script démarré, vous serez guidé tout au long du processus d'ajout d'un nouvel utilisateur :

Exemple de sortie
What type of user do you wish to add?
 a) Management User (mgmt-users.properties)
 b) Application User (application-users.properties)
(a):
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin
The username 'admin' is easy to guess
Are you sure you want to add user 'admin' yes/no? yes
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
 - The password should not be one of the following restricted values {root, admin, administrator}
 - The password should contain at least 8 characters, 1 alphanumeric character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
 - The password should be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[  ]:
About to add user 'admin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'admin' to file '/data/wildfly-8.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'admin' to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'admin' with groups  to file /data/wildfly-8.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'admin' with groups  to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition 
Press any key to continue . . .

Accédez maintenant à la console d'administration Web à l'adresse « http://localhost:9990/console » et entrez le nouveau nom d'utilisateur et le mot de passe créés pour accéder directement à la console de gestion.

Premier écran après la connexion.

Si vous préférez gérer votre serveur depuis la CLI, exécutez le script 'jboss-cli.sh' depuis le répertoire 'bin' qui propose les mêmes fonctionnalités disponibles via l’interface utilisateur Web.

[root@tecmint bin]# cd bin
[root@tecmint bin]# ./jboss-cli.sh --connect
Connected to standalone controller at localhost:9999

Pour plus d'informations, suivez la documentation officielle de WildFly 8 sur https://docs.jboss.org/author/display/WFLY8/Documentation.

Lire aussi : WildFly (JBoss AS) – Comment accéder et gérer la CLI à l'aide de l'interface graphique