weblo_from_scratch - sebabarre/wikiDoc GitHub Wiki

WebLogic From Scratch

Table of Contents

Overview

overview

Domain

Groupe logique de servers WL qui sont managés comme une seule resource

Machine

Ordinateur physique qui est l’hôte une ou plusieurs instances WL

Cluster

Groupe logique de serveurs managés

Node Manager

Utilitaire qui sert à start/stop des servers depuis une remote location

Server

JVM qui execute la class weblogic.Server

Domain

domain

Un domaine est une fonctionnalité administrative qui est transparente pour les applications. Les domaines peuvent être utilisés pour séparer les applications de développement, de test et de production, ou les applications administratives et operationnelles, par exemple.

  • Chaque domaine a besoin de son propre server d’administration.

  • Un cluster ne peut pas traverser plusieurs domaines

  • Les serveurs managés d’un domaine doivent avoir la même version de WLS

  • Le serveur d’admin d’un domain doit avoir à minima la même version que les serveurs managés de ce domaine

Serveur

Un serveur est une instance de la classe weblogic.Server exécutée dans une JVM. Il existe 2 types de serveurs : les serveurs d’administration et les serveurs managés

Serveur d’administration

C’est le point central de contrôle d’un domaine.

Ses services peuvent être invoqués en utilisant :

  • La console d’administration

  • L’API weblo

  • L’utilitaire en ligne de commande (WLST)

adminServerCe serveur :

  • Enregistre les confs et les logs d’un domaine

  • Distribue les documents de configuration aux serveurs managés

  • Run la console d’administration

  • Doit tourner pour pouvoir modifier la conf d’un domaine

Serveur managé

C’est tout serveur d’un domaine qui n’est pas le serveur d’administration.

  • Il contacte le serveur admin pour les infos de conf

  • Il fait tourner les applis

  • Il est indépendant de tout autre serveur managé du domaine ( à moins qu’ils soient dans un cluster)

  • Un domaine n’a pas de limite de quantité de serveur managé

  • Les serveurs managés sont ajoutés typiquement pour des raisons de capacités et d’isolement applicatif.

Note
Le serveur managé copie au démarrage les fichiers de conf du server d’admin. De plus, à chaque modification des conf sur le serveur d’administration, les changements sont envoyés aux serveurs managés

Machine

Une machine est un ordinateur qui héberge des instances WLS.

Cluster

C’est un groupe logique de servers WLS.
Un cluster fournit une haute disponiblité et une meilleure répartition des charges. Il est transparent pour un client.

Warning
Un cluster ne peut pas traverser les domaines, donc tous les serveurs d’un cluster doivent appartenir au même domaine. De plus, tous les serveurs d’un cluster doivent être au même niveau de version.

Node Manager

C’est un process - optionnel - qui tourne sur une machine et qui permet de démarrer, suspendre, stopper ou redémarrer les serveurs d’administration et managés qui tournent sur la même machine, le tout à distance

  • Il n’est pas associé à un domaine mais à une machine

  • Il est obligatoire si on utilise la console d’administration pour démarrer des serveurs managés.

  • Il est obligatoire avec Whole Server Migration, ainsi que pour des confs de Automatic Service Migration.

  • Il existe en 2 versions : java et script (avec les mêmes fonctionnalités)

Java

Le Node Manager Java tourne au sein d’une JVM. Il doit être utilisé comme service ou comme daemon. Il est plus sécurisé que la version script

Note
Sa configuration est dans le fichier nodemanager.properties
Script

Cette version de Node Manager est basé sur un script shell (et n’est donc pas supporté par Windows). Il utilise SSH.

L’accès aux Node Manager se fait par la console d’administration, JMX utilities ou par des commandes/scripts WLST. nodeManager

Installation

Il est possible d’installer WLS de 3 façons différentes : par GUI, en mode console ou en mode silencieux.

Note
WLS 12.1.1 est compatible avec Java EE 6

Emplacement des fichiers post-install (par default):

(/u01/app/oracle/product/Middleware) : Middleware Home

  • registry.dat/registry.xml : Enregistrement de tous les produits Oracle Middleware

  • utils : fichiers JAR additionnels

  • wlserver_12.1.1 : Oracle WLS Home

  • logs : Installation logs

  • modules : Modules(.jar) installés dans le Middleware Home

  • coherence_3.7 : Coherence home directory

Structure du répertoire wlserver

  • common : fichiers partagés par les composants wls

  • samples : exemples de code et de resources

    • domains : exemples pour des applications medrec, medrec-spring et wl_server

    • server : Code source pour des domaines installés avec WLS

    • sipserver : code source pour des applications SIP

  • server : composants de server (executables, fichiers bdd, fichiers XML, drivers JDBC, plugins…​)

  • unistall : fichiers pour supprimer wls

Paramétrer les variables d’environnements

Il faut exécuter <WL_HOME>/server/bin/setWLSEnv.sh pour paramétrer WL_HOME, JAVA_HOME, PATH et CLASSPATH. Ce script apelle commEnv.sh dans WL_HOME/common/bin pour paramétrer les variables d’environnement comme ORACLE_HOME, ANT_HOME et DERBY_HOME.

Configuration d’un domaine

La configuration d’un domaine est la définition d’une collection de ressources telles que :

  • des serveurs managés

  • des clusters

  • des connections aux bdd

  • des services de sécurité

  • des applis Java EE

On peut utiliser le Wizard ou la console pour créer et configurer des domaines. Des domaines typiques sont les des domaines de developement, de test ou de production.

Note
Le script de configuration de domaine est <WL_HOME>/common/bin/config.sh. Par defaut il lance un GUI, mais avec l’option -mode=console il peut être en mode console.

configurationWizard

Structure du répertoire Domain

domain-name
  • autodeploy : En mode developement, WLS deploie automatiquement toutes les applications ou modules placés dans ce répertoire.

  • bin : Scripts pour démarrer ou arrêter les serveurs du domaine

  • config : Configuration courante et état de deploiement du domaine.

  • console-ext : Extensions de la console

  • init-info : Information d’initilisation du domaine

  • lib : Fichiers JAR ajoutés au classpath de chaque instance du serveur

  • pending : Changement de configuration du domaine qui ont été sauvés mais pas encore activés.

  • security : Fichiers de sécurité côté domaine

  • servers : Contient un répertoire par serveur du domaine

  • user_staged_config : Répertoire alternatif au dossier config si l’information de configuration du domaine est "user-staged"

Démarrage du serveur d’administration

Plusieurs façons de faire :
  • weblogic.Server (seulement en mode dévelopement)

  • Menu Démarrer (Windows)

  • DOMAIN_DIR/bin/startWebLogic.sh

  • WLST avec/sans NodeManager

startWebLogic.sh

Ce script effectue :
- Set l’environnement en invoquant setDomainEnv.sh
- Run java weblogic.Server

WLST et NodeManager

  • Démarrer NodeManager

java weblogic.WLST
wls:/offline> startNodeManager()
  • Connecter WLST au NodeManager

wls:/offline>nmConnect('username','password','nmHost','nmPort','domainName','domainDir','nmType')
  • Utiliser la commande nmStart pour démarrer le serveur d’administration

wls:/nm/mydomain>nmStart('AdminServer')

WLST sans NodeManager

  • Exécuter le script wlst.sh trouvé dans <MW_HOME>/wlserver_12.1/common/bin

  • Utiliser la commande startServer pour démarrer un serveur :

wls:offline/>startServer (
[adminServerName],
[domainName],
[url],
[userName],
[password],
[domainDir],
[block],
[timeout],
[serverLog],
[systemProperties],
[jvmArgs][spaceAsJvmArgsDelimiter]
)

Configuration des serveurs Managés

Configuration

Ils peuvent être configurés en utilisant :

  • Le Wizard de configuration de domaine

  • La console d’administration

  • En ligne de commande avec WLST === Création Avec la commande WLST, il faut utiliser la commande create :

wls:/mydomain/edit !> server1=create('newServer','Server')
Server with name 'newServer' has been created successfully
wls:/mydomain/edit !> server1.getName()
newServer
Note
on utilise la même commande pour créer des machines, ou tout autres éléments définis dans config.xml

Démarrage des serveurs managés

Plusieurs façons de faire :
  • weblogic.Server (seulement en mode dévelopement)

  • DOMAIN_DIR/bin/startManagedWebLogic.sh

  • WLST avec NodeManager

  • Console d’administration

Par le script startManagedWebLogic.sh

Il faut lancer la commande suivante :

startManagedWeblogic.sh managedServerName adminUrl

Par la console d’administration

demarrageServeur

Par WLST avec Node Manager

  • Démarrer NodeManager

java Weblogic.WLST
wls:/offline> startNodeManager()
  • Connecter WLST au NodeManager

wls:/offline>nmConnect('username','password','nmHost','nmPort','domainName','domainDir','nmType')
  • Démarrer le serveur managé

wls:/offline>start('managedServerName','Server')
Tip
A chaque démarrage d’un serveur par shell, on doit rentrer le username et le mot de passe. Pour éviter ça, créer un fichier boot.properties dans <DOMAIN_HOME>\servers\servername\security avec 2 lignes :
- username=<username>
- password=<password>
Au premier démarrage du serveur, celui-ci lit ces informations et les encryptes.

Managed Server Independance (MSI)

Par defaut, les serveurs managés peuvent tourner indépendamment du serveur d'admin. Un serveur managé peut démarrer en mode MSI si le serveur d'admin n'est pas actif.

Il faut configurer le mode MSI dans la console d’admin : Environnement > Servers > Server_Name > Tuning > Advanced > Managed Server > Independence Enabled Check Box

Cas où le serveur d’admin est down

  • Le serveur d’admin peut tomber sans affecter les opérations des serveurs managés

  • Il peut redémarrer pendant que les serveurs managés sont en train de tourner

  • Si le serveur d’admin est down :

    • Les logs du domain ne sont pas disponibles

    • Les serveurs managés peuvent démarrés en MSI

    • La console d’admin et les outils de management sont hors service

WLS permet la création d’un backup de serveur : . Installer WLS sur une machine backup . Copier les fichiers d’applications . Copier les fichiers de configuration . Redémarer le serveur d’admin sur la nouvbelle machine . Le nouveau serveur d’admin contacte les serveurs managés et les informe qu’il tourne sur une nouvelle IP

Création de Template

Un template définit des resources pour un domaine
  • Oracle fournit des exemples de templates pour créer des domaines

  • Les templates sont disponibles dans *<WL_HOME>/common/templates/domains directory

  • Des extensions de templates sont disponibles dans *<WL_HOME>/common/templates/applications directory

On peut créer des template en utilisant de Domain Template Builder : - Définir un domaine et le répliquer à travers de nombreux projets - Distribuer un domaine packagé avec une appli dtb

Note
le Domain Template Builder est un GUI qui se lance avec la commande config_builder.sh disponible dans <WL_HOME>/common/bin

Vue d’ensemble

Quel outil pour quelle tâche ?

Créer un domaine

Le Wizard Configuration. Pour automatiser une création, utiliser un script WLST (WebLogic Scripting Tool), ou fichier XML

Migrer d’un environnement de dev à un environnement de prod

La commande pack du DomainTemplate Builder

Configurer une connection à une BDD ou à d’autres systèmes

Via la console d’admin ou par WLST

Manager le cycle de vie du serveur

Le Node Manager (outil de contrôle à distance indépendant des serveurs admin et managés) ou par WLST

Déployer une application

La console d’administration ou par WLST.

Vue d’ensemble des outils du système d’administration

WebLogic Server Administration Console

Application web hébergée par le serveur admin. Utilisée pour manager et monitorer les domaines actifs.

Fusion Middleware Control

WLS peut aussi être managé via Fusion Middleware Control

WebLogic Scripting Tool

Interface de script en ligne de commande qui permet de managé et de monitorer des domaines WLS actifs ou inactifs. Script basé sur Jython

Configuration Wizard

Il créé la structure de dossiers approprié pour un domaine, un fichier config.xml, et des scripts à utiliser pour démarrer les serveurs du domaine. Le Wizard utilise des templates pour créer des domaines

Configuration Template Builder

Permet de créer facilement des templates

Démarrer la console

  1. Démarrer le serveur d’administration

  2. Aller dans

http://hostname:port/console
Note
Le port par défaut est 7001. Les user/mdp ont normalement été définis lors de l’installation

Création de domaine

Tips

Connaître la version de weblogic :

nano `find / -name "registry.xml" 2>/dev/null`

Lancer l’IHM de création de domaine depuis SSH

Installer et configurer un serveur X

Installer Xming, puis ses fonts sur une machine cliente Windows : \\pluto- bdx\public\CRCI\installations\Developpement\Xming
Editer le fichier C:\Program Files (x86)\Xming\X0.hosts, en ajoutant une ligne correspondant à l’adresse IP de votre serveur Linux distant.
Exécuter ensuite XLaunch (utiliser la configuration par défaut).
Noter l’IP de cette machine Windows, exemple dans notre cas : 10.33.33.70

Se connecter au serveur distant en SSH

Se connecter en SSH sur le serveur nécessitant l’installation graphique (exemple : serveur Oracle).

Warning
Il faut utiliser Putty, ça ne fonctionne pas avec mRemote. Dans Putty, il faut activer le X11 forwarding : Déplier Connection > SSH > X11, cliquer sur Enable X&& forwarding et renseigner localhost:0.0 dans X display location

Une fois connecté en SSH, exécuter la commande suivante :

export DISPLAY=10.33.33.71:0.0

Par défaut, l’identifiant du DISPLAY est 0.0, pour le vérifier il suffit de pointer sa souris sur l’icône Xming dans la barre des tâches de la machine Windows.

Il suffit maintenant d’exécuter la commande qui lance l’interface graphique.

Warning
Il faut vérifier que dans /etc/ssh/sshd_config la ligne X11Forwarding yes est renseignée.
⚠️ **GitHub.com Fallback** ⚠️