Création d'un WebSphere Liberty Core.

1. Avant-propos
1.1. Présentation
1.2. Introduction
2. Exemple de configuration
2.1. JDBC Myslq
2.2. JNDI
3. Installation d'une application
3.1. Installation du war DevProfDeMusique.war
3.2. script start avec environnement
3.3. script stop avec environnement
3.4. script status avec environnement
4. Configuration IHS avec Plugin
4.1. Configuration IHS
4.2. Configuration PLUGIN

1. Avant-propos


1.1 - Présentation.


+------------------------------+                                               +--------------------------------------+ 
| Serveur IHS                  |                                               | Serveur WebSphere Liberty Core       | 
| Hostname : saturn            |                                               | Version : 8.5.5.2                    | 
| Os : Linux 2.6.32            |                                               | Hostname : arecibo                   | 
|                              |                                               |                                      | 
| +--------------------------+ |                                               | +---------------------------------+  | 
| | PLUGINS                  |-|-----------------------------------------------|-|--> Server.xml                   |  | 
| +--------------------------+ |                                               | |                                 |  |
|                              |                                               | +---------------------------------+  | 
+------------------------------+                                               +--------------------------------------+ 
                                                                              /               |
                                                                             /                |
                                                                     +-----------+      +-----------+ 
                                                                     |Port 1521  |      | Port 1436 |
                                                                     +-----------+      +-----------+
                                                                         /                    |
                                                                        /                     |
                                                                       V                      V
                                                +---------------------------+       +--------------------------+
                                                |  Serveur : Oracle         |       | Serveur : Oracle         |
                                                |  Hostname : Jupiter       |       | Hostname : 192.29.160.7  |
                                                +---------------------------+       +--------------------------+



1.2 - Introduction


Nous allons réaliser une installation d'un WebSphere Liberty Core version 8.5.5 en fixe pack 1.

2. Exemple de configuration


Nous allons ajouter des composants dans le serveur Liberty Core étape par étape.

2.1 - JDBC MySQL


Afin de rajouter une connexion MySQL, vous devez rajouter l'appel au "feature pack" (jdbc-4.0)

2.2 - JNDI


Afin de rajouter un JNDI, vous devez rajouter l'appel au "feature pack" (jndi-1.0)

3. Installation d'une application


Dans l'exemple suivant nous allons installer une application sur un serveur Liberty Core sur le serveur "arecibo" .
Pour se faire nous allons déployer une application test fournie par IBM :

3.1 - Installation du war DevProfDeMusique.war


Dans le répertoire /apps/WebSphere85/LibertyCore/usr/servers/wlptest/apps du serveur arecibo copier le fichier DevProfDeMusique.war
Puis modifié le fichier server.xml en ajoutant les balises "application" ci-dessous :
vi server.xml

<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>localConnector-1.0</feature>
        <feature>jsp-2.2</feature>
        <feature>jndi-1.0</feature>
        <feature>jdbc-4.0</feature>
        <feature>concurrent-1.0</feature>
    </featureManager>

   <webContainer deferServletLoad="false"/>

  <managedScheduledExecutorService jndiName="concurrent/scheduledExecutor1"/>

  <dummyTag jndiName="toto"/>

    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="1212"
                  httpsPort="9443" />

   <dataSource id="profdemusique" jndiName="jdbc/profdemusique" jdbcDriverRef="MySQLJDBCDriver">
        <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties user="admins" serverName="localhost" portNumber="3306" password="{xor}XXXwMzorbg==" databaseName="profdemusique"/>
    </dataSource>

   <dataSource id="blogprofdemusique" jndiName="jdbc/blogprofdemusique" jdbcDriverRef="MySQLJDBCDriver">
        <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties user="admact" serverName="localhost" portNumber="3306" password="{xor}XXXwMzAxb24=" databaseName="action"/>
    </dataSource>

    <dataSource id="fis" jndiName="jdbc/fis" jdbcDriverRef="MySQLJDBCDriver">
         <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties user="BOBS" serverName="neptune" portNumber="60003" password="{xor}XXXXxkWDA==" databaseName="FER"/>
    </dataSource>


    <dataSource id="orabiz" jndiName="jdbc/orabiz" jdbcDriverRef="SQLServerJDBCDriver">
        <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties.microsoft.sqlserver databaseName="SD"
                                    serverName="192.29.160.7" portNumber="1436" user="franck" password="turlan"/>
    </dataSource>

    <dataSource id="orablog" jndiName="jdbc/orablog" jdbcDriverRef="OracleJDBCDriver">
        <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties.oracle URL="jdbc:oracle:thin:@jupiter:1521:DEV5FRP0" user="U_PRODH15" password="{xor}XXXytuZjQ8"/>
    </dataSource>

    <dataSource id="oratest" jndiName="jdbc/oratest" jdbcDriverRef="OracleJDBCDriver">
        <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties.oracle URL="jdbc:oracle:thin:@mars:1521:EXT2FRP0" user="oratest" password="{xor}XXXXXXiUybTktL28="/>
    </dataSource>

   <dataSource id="oemgc11" jndiName="jdbc/oemgc11" jdbcDriverRef="OracleJDBCDriver">
        <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties.oracle URL="jdbc:oracle:thin:@mercure:1521:OEMPRD100" user="infoprof" password="{xor}XXXO20zb280"/>
    </dataSource>

   <dataSource id="oemgc12" jndiName="jdbc/oemgc12" jdbcDriverRef="OracleJDBCDriver">
        <connectionManager maxPoolSize="10" minPoolSize="0" connectionTimeout="60s" reapTime="180s" maxIdleTime="30m"/>
        <properties.oracle URL="jdbc:oracle:thin:@venus:1521:OEM6DEV" user="infocompta" password="{xor}XXXMW1vbms="/>
    </dataSource>


    <library id="jdbc_mysql_lib">
        <fileset dir="${server.config.dir}/jdbc_drivers" includes="mysql-connector-java-5.0.3-bin.jar" />
    </library>

     <library id="jdbc_oracle_lib">
        <fileset dir="${server.config.dir}/jdbc_drivers" includes="ojdbc6.jar" />
    </library>

    <library id="jdbc_sqlserver_lib">
        <fileset dir="${server.config.dir}/jdbc_drivers" includes="sqljdbc4.jar" />
    </library>


    <library id="profdemusique_lib">
       <folder dir="${server.config.dir}/profdemusique_properties" />
    </library>

     <library id="blogprofdemusique_lib">
       <folder dir="${server.config.dir}/blogprofdemusique_properties" />
       <fileset dir="${server.config.dir}/blogprofdemusique_lib" includes="*.jar" />
    </library>


    <jdbcDriver id="MySQLJDBCDriver" libraryRef="jdbc_mysql_lib"/>
    <jdbcDriver id="OracleJDBCDriver" libraryRef="jdbc_oracle_lib"/>
    <jdbcDriver id="SQLServerJDBCDriver" libraryRef="jdbc_sqlserver_lib"/>


    <application id="profdemusique" name="profdemusique" type="war" location="DevProfDeMusique.war" >
        <classloader commonLibraryRef="profdemusique_lib" />
    </application>

   <application id="blogprofdemusique" name="blogprofdemusique" type="war" location="blogprofdemusique.war" >
        <classloader commonLibraryRef="blogprofdemusique_lib" />
    </application>

</server>



3.2 - Script start avec les variables d'environnement


Afin de démarrer notre serveur Liberty core nous allons réaliser un script start.sh.
Placé ce script ou vous voulez.
Puis lancer la commande ./start.sh

#!/bin/sh 

WAS_USER=was 
USER=`whoami` 
if [[ "$USER" != "$WAS_USER" ]] 
then 
   echo "You must be $WAS_USER !" 
   exit 1 
fi 

export WLP_USER_DIR=/applis/profdemusique/wlp 
export WLP_OUTPUT_DIR=/applis/logs/profdemusique/wlp 
/apps/WebSphere85/LibertyCore/bin/server start profdemusique 


3.3 - Script stop avec les variables d'environnement


Afin de démarrer notre serveur Liberty core nous allons réaliser un script stop.sh.
Placé ce script ou vous voulez.
Puis lancer la commande ./stop.sh

#!/bin/sh 

WAS_USER=was 
USER=`whoami` 
if [[ "$USER" != "$WAS_USER" ]] 
then 
   echo "You must be $WAS_USER !" 
   exit 1 
fi 

export WLP_USER_DIR=/applis/profdemusique/wlp 
export WLP_OUTPUT_DIR=/applis/logs/profdemusique/wlp 
/apps/WebSphere85/LibertyCore/bin/server stop profdemusique 

3.4 - Script status avec les variables d'environnement


Afin de démarrer notre serveur Liberty core nous allons réaliser un script status.sh.
Placé ce script ou vous voulez.
Puis lancer la commande ./status.sh

#!/bin/sh 

WAS_USER=was 
USER=`whoami` 
if [[ "$USER" != "$WAS_USER" ]] 
then 
   echo "You must be $WAS_USER !" 
   exit 1 
fi 

export WLP_USER_DIR=/applis/profdemusique/wlp 
export WLP_OUTPUT_DIR=/applis/logs/profdemusique/wlp 
/apps/WebSphere85/LibertyCore/bin/server status profdemusique 


4. Configuration IHS avec Plugin


Dans l'exemple suivant nous allons installer une application sur un serveur Liberty Core sur le serveur "arecibo" .
Pour se faire nous allons déployer une application test fournie par IBM :

4.1 - Configuration IHS


Après avoir créé une arborescence /applis/profdemusique/ihs sur le serveur saturncomme ci-dessous :
root@saturn:/applis/profdemusique/ihs# du
2       ./htdocs
2303    ./modules
3       ./plugins
7       ./conf
1       ./icons
14      ./logs
2334    .
root@saturn:/applis/profdemusique/ihs#
Modifié le fichier httpd.conf en ajoutant les balises suivantes :
vi httpd.conf
LoadModule was_ap22_module /applis/profdemusique/ihs/modules/mod_was_ap22_http.so
WebSpherePluginConfig /applis/profdemusique/ihs/plugins/plugin-cfg.xml

4.2 - Configuration PLUGIN


Dans le répertoire /applis/profdemusique/ihs/plugins modifié le fichier plugin-cfg.xml en ajoutant les balises suivantes :
vi plugin-cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<Config ASDisableNagle="false" AcceptAllContent="false" AppServerPortPreference="HostHeader"
        ChunkedResponse="false" FIPSEnable="false" IISDisableNagle="false"
        IISPluginPriority="High" IgnoreDNSFailures="false" RefreshInterval="60"
        ResponseChunkSize="64" SSLConsolidate="false" SSLPKCSDriver="REPLACE"
        SSLPKCSPassword="REPLACE" TrustedProxyEnable="false" VHostMatchingCompat="false">
   <Log LogLevel="Error" Name="/applis/profdemusique/ihs/logs/http_plugin_profdemusique.log"/>
   <Property Name="ESIEnable" Value="true"/>
   <Property Name="ESIMaxCacheSize" Value="1024"/>
   <Property Name="ESIInvalidationMonitor" Value="false"/>
   <Property Name="ESIEnableToPassCookies" Value="false"/>
   <Property Name="PluginInstallRoot" Value="."/>
   <VirtualHostGroup Name="default_host">
         <VirtualHost Name="*:9999"/>
         <VirtualHost Name="*:1212"/>
     </VirtualHostGroup>
 <ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" IgnoreAffinityRequests="true"
                LoadBalance="Round Robin" Name="defaultServer_default_node_Cluster"
                PostBufferSize="64" PostSizeLimit="-1" RemoveSpecialHeaders="true"
                RetryInterval="60">
      <Server CloneID="b564bdc7-2c27-4a4b-ad37-9213c66e60d1" ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="default_node_defaultServer0" ServerIOTimeout="900" WaitForContinue="false">
          <Transport Hostname="saturn" Port="1212" Protocol="http"/>
         </Server>
      <PrimaryServers>
          <Server Name="default_node_defaultServer0"/>
         </PrimaryServers>
    </ServerCluster>
 <UriGroup Name="default_host_defaultServer_default_node_Cluster_URIs">
      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/profdemusique/*"/>
    </UriGroup>
 <Route ServerCluster="defaultServer_default_node_Cluster" UriGroup="default_host_defaultServer_default_node_Cluster_URIs" VirtualHostGroup="default_host"/>
</Config>