Sunday, November 20, 2011

Démarrage de vos serveurs Weblogic avec Node Manager

Comment démarrer vos serveurs Weblogic 11g ? Vaste sujet tant il existe de possibilités pour réaliser cette opération. Chacune ayant son intérêt et ses limites :
  • A l'aide des scripts startWeblogic.sh et startManagedWeblogic.sh fournis avec le produit
  • à l'aide de la commande java weblogic.Server
  • Depuis la console d'administration
  • A l'aide d'un Service Windows
  • A l'aide de WLST en vous connectant au Node Manager ou au Server d'Administration
La meilleure façon de faire vous appartient. Elle dépend très certainement de la fonction du serveur : un serveur de développement se contentera probablement d'un script alors qu'un serveur de production devra être géré à distance et redémarré automatiquement...

Dans cet article, vous trouverez le détail d'une configuration avec réalisée avec un Node Manager. C'est la configuration la plus adéquate pour vos serveurs de production puisqu'elle permet la gestion via des scripts ; les redémarrages automatiques ; et les opérations à distance puis les consoles Weblogic et Enterprise Manager.
Note:
Ce qui suit s'appuie sur une configuration Linux et fonctionne de manière similaire sur Unix. Pour d'autres configurations, comme Windows, reportez-vous à la documentation produit.

Démarrer le Node Manager

Vous ne démarrerez qu'un seul Node Manager par serveur. Pour cela, utilisez, par exemple, le script $WL_HOME/server/bin/startNodeManager.sh avec nohup ou WLST comme ci-dessous :
cd $WL_HOME/common/nodemanager
# Note:
# vous devez démarrer de ce répertoire pour 
# que les fichiers de propriétés soient découverts

$WL_HOME/common/bin/wlst.sh
startNodeManager()
[...]
Node Manager starting in the background

Vous noterez notamment que :
  • la configuration est effectuée avec l'installation de Weblogic et disponible dans $WL_HOME/common/nodemanager ; le fichier nodemanager.properties contient les propriétés du serveur tandis que nodemanager.domains contient les domaines gérés par celui-ci
  • son accès est quant à lui configuré lors de la création du domaine dans le fichier  $DOMAIN_HOME/config/nodemanager/nm_password.properties

Démarrage automatique

Pour démarrer le Node Manager avec les serveurs, adaptez simplement le script fournit par John Graves sur le blog Oracle.

Changer le mot de passe du Node Manager

Comme indiqué, le mot de passe pour vous connecter au node manager est stocké dans les domaines supervisés dans le fichier nm_password.properties. Pour le modifier, connectez-vous à la console et naviguer sur l'onglet "Security > General". Changez les propriétés NodeManager Username, NodeManager Password et Confirm NodeManager Username de la section Advanced de la page :
Note:
Les informations de connexion au Node Manager ne sont pas stockées dans le LDAP interne à Weblogic. Elles n'ont donc rien à voir avec les autres connexions utilisateurs. Si vous décidez malgré tout d'utiliser weblogic comme nom d'utilisateur, gardez en tête que cet utilisateur n'a rien à voir avec l'utilisateur qui permet de se connecter aux serveurs ! Par ailleurs, modifiez ces informations de manière identique sur tous les serveurs du domaine pour faciliter leur gestion.

Connexion au serveur d'administration

Pour réaliser des opérations sur le server d'administration, vous voudrez vous connecter à celui-ci. Enregistrez les informations de connexion dans des fichiers chiffrés. Vous éviterez ainsi de stocker des mots de passe en clair :
connect()
Please enter your username :weblogic
Please enter your password :
Please enter your server URL [t3://localhost:7001] :
Connecting to t3://localhost:7001 with userid weblogic ...
Successfully connected to Admin Server 'AdminServer' that belongs to domain 'main'.

Warning: An insecure protocol was used to connect to the 
server. To ensure on-the-wire security, the SSL port or 
Admin port should be used instead.

storeUserConfig(
   userConfigFile='/opt/oracle/middleware/security/configAdminServer.secure',
   userKeyFile='/opt/oracle/middleware/security/keysAdminServer.secure')
Note:
Si le domaine n'est pas enregistré dans le Node Manager, il n'apparait pas dans le fichier nodemanager.domains. Ajoutez le domaine au Node Manager à l'aide de la commande ci-dessous :
nmEnroll(
   domainDir='/opt/oracle/middleware/user_projects/domains/main')
Vous pourrez alors vous connecter à l'aide des fichiers créés précédemment :
exit()

$WL_HOME/common/bin/wlst.sh

connect(
   userConfigFile='/opt/oracle/middleware/security/configAdminServer.secure',
   userKeyFile='/opt/oracle/middleware/security/keysAdminServer.secure',
   domainName='main')
 
exit() 

Connexion au Node Manager via WLST

Pour vous connecter au Node Manager, utilisez nmConnect comme ci-dessous. Vous pourrez enregistrer les informations de connexion dans des fichiers chiffrés pour créer des scripts automatiques sans laisser de mots de passe en clair sur le serveur :
$WL_HOME/common/bin/wlst.sh

nmConnect(username='weblogic',
   password='welcome1',
   localhost='localhost',
   port='5556',
   domainName='main',
   nmType='ssl')

storeUserConfig(
   userConfigFile='/opt/oracle/middleware/security/configNodeManager.secure',
   userKeyFile='/opt/oracle/middleware/security/keysNodeManager.secure',
   nm='true')

exit()
Connectez-vous sans resaisir le mot de passe :
$WL_HOME/common/bin/wlst.sh

nmConnect(   
   userConfigFile='/opt/oracle/middleware/security/configNodeManager.secure',
   userKeyFile='/opt/oracle/middleware/security/keysNodeManager.secure',
   localhost='localhost',
   port='5556',
   domainName='main',
   nmType='ssl')

Redémarrer votre configuration

Vous pouvez arrêter tous les serveurs, y compris le serveur d'administration. Passez également la propriété CrashRecoveryEnabled à true afin que le Node Manager redémarre les serveurs Weblogic qui auraient crashées, y compris du fait de l'arrêt du serveur !

Il est important de redémarrer le serveur d'administration à l'aide du Node Manager afin que celui-ci le redémarre en cas d'arrêt. Pour cela, créer un fichier boot.properties qui contient les informations de connexion à celui-ci dans son répertoire dans le domaine comme, par exemple :
cd $DOMAIN_HOME/servers/AdminServer
mkdir -p security
echo "username=weblogic" > security/boot.properties
echo "password=welcome1" >> security/boot.properties

cd $WL_HOME/common/nodemanager

$WL_HOME/common/bin/wlst.sh
startNodeManager()

nmConnect(   
   userConfigFile='/opt/oracle/middleware/security/configNodeManager.secure',
   userKeyFile='/opt/oracle/middleware/security/keysNodeManager.secure',
   localhost='localhost',
   port='5556',
   domainName='main',
   nmType='ssl')

nmStart('AdminServer')

connect(
   userConfigFile='/opt/oracle/middleware/security/configNodeManager.secure',
   userKeyFile='/opt/oracle/middleware/security/keysNodeManager.secure',
   )

cd('Servers')
ls()
dr--   AdminServer
dr--   ManagedServer1

state('ManagedServer1')
Current state of 'ManagedServer1' : SHUTDOWN

start('ManagedServer1')

state('ManagedServer1')
Current state of 'ManagedServer1' : RUNNING
Note:
Après le démarrage du serveur d'administration, le fichier boot.properties est chiffré automatiquement

Tester la configuration

Vous pouvez redémarrer le serveur et vérifier que, grâce au Node Manager, tous les serveurs qui fonctionnaient précédemment repartent.

Le Node Manager gère également les cas de crash d'un des serveurs, y compris si vous utilisez la commande "kill". Les serveurs arrêtés normalement restent, quant à eux, arrếtés, y compris après un reboot.

No comments:

Post a Comment