Migration des charges de travail à l'aide de l'outil de déploiement WebLogic

Déployer toutes les ressources et applications sur un domaine provisionné en une seule fois plutôt qu'individuellement.

Avec l'outil de déploiement WebLogic (WLDT), vous allez mettre à jour le fichier de modèle de domaine source afin de cibler les différentes applications et ressources sur les serveurs du nouveau domaine et de mettre à jour les connexions de base de données pour qu'elles correspondent aux bases de données migrées vers Oracle Cloud Infrastructure.

Avant de commencer, prenez en compte les points suivants :

  • Le nom de domaine créé pour l'image Oracle WebLogic Server for Oracle Cloud Infrastructure est le préfixe que vous avez fourni lors de la fourniture d'infos de paramétrage avec le suffixe ajouté _domain, par exemple test_domain.

  • Les noms des serveurs gérés respectent le modèle <prefix>_server_<index> par exemple, test_server_1, test_server_2, test_server_nn représente le nombre de noeuds pour lesquels des infos de paramétrage ont été fournies.

  • Le serveur d'administration se nomme <prefix>_adminserver, par exemple test__adminserver.

  • Si vous avez provisionné WebLogic Enterprise Edition, un cluster nommé <prefix>_cluster inclut tous les serveurs gérés qui sont provisionnés.

  • Vous aurez besoin de la chaîne de connexion pour la base de données créée précédemment.

  • Si les fichiers d'application se trouvent sous la structure de dossiers ORACLE_HOME, ils ne seront pas sélectionnés par l'outil de déploiement WebLogic et doivent être déplacés manuellement. Vous pouvez également packager des fichiers d'application dans un fichier zip avec une structure de dossiers semblable à wlsdeploy/applications/<app.ear> et remplacer SourcePath par le même chemin afin que la méthode de déploiement WebLogic effectue le déploiement du dossier par défaut sur la cible.

  1. En tant qu'utilisateur WebLogic approprié (en général oracle) et avec une configuration correcte JAVA_HOME, installez WebLogic Deploy Tooling (WLDT) dans le domaine source.
    # install weblogic-deploy-tooling
    # Check for the latest version at:
    # https://github.com/oracle/weblogic-deploy-tooling/releases/
    WLSDT_VERSION=1.7.0
    echo $JAVA_HOME
    # download and unzip the package
    wget -qO- https://github.com/oracle/weblogic-deploy-tooling/releases/download/weblogic-deploy-tooling-${WLSDT_VERSION}/weblogic-deploy.zip | $JAVA_HOME/bin/jar xv
    # make the scripts executable
    chmod +x weblogic-deploy/bin/*.sh
  2. Repérez le domaine source.

    L'option -domain_type est définie par défaut sur WLS et peut donc être omise pour un domaine WLS. Lorsque -domain_type JRF, la commande de repérage filtre tous les composants JRF, qui sont à nouveau approuvés par l'image marketplace dans le cas d'un domaine JRF. L'utilisation de JRF est utile pour le repérage de tous les domaines.

    Cet exemple utilise source pour les fichiers .yaml, .zip et .properties. Vous pouvez utiliser n'importe quel nom de fichier valide.

    # path to the parent of the wlserver folder (for example /u01/app/oracle/middleware/)
    MW_HOME=
    # path to the domain folder (i.e. <domain root>/<domain_name>)
    DOMAIN_HOME=
    
    weblogic-deploy/bin/discoverDomain.sh \
        -oracle_home $MW_HOME \
        -domain_home $DOMAIN_HOME \
        -archive_file source.zip \
        -model_file source.yaml \
        -variable_file source.properties \
        -domain_type JRF
    
    # even if the domain is not JRF, using JRF domain type will only filter out domain libraries. If they don’t exist, this will not affect the output.
  3. Déplacez les fichiers vers le serveur d'administration de l'environnement cible.
    SOURCE_IP=<IP of the source WLS server>
    ADMIN_SERVER_IP=<IP of the cloud Administrator server>
    scp <source_user>@${SOURCE_IP}:~/source.* opc@${ADMIN_SERVER_IP}:~/
    
    # change ownership of the files from opc to oracle 
    # and move the file to the oracle user home
    ssh opc@${ADMIN_SERVER_IP}
    sudo chown oracle:oracle source.*
    sudo mv source.* /home/oracle/
    # switch to the oracle user
    sudo su – oracle
  4. Installez WebLogic Deploy Tooling sur le serveur d'administration WLS sur Oracle Cloud Infrastructure.
    # As the oracle user, install weblogic-deploy-tooling
    WLSDT_VERSION=1.7.0
    wget -qO- https://github.com/oracle/weblogic-deploy-tooling/releases/download/weblogic-deploy-tooling-${WLSDT_VERSION}/weblogic-deploy.zip | $JAVA_HOME/bin/jar xv
    
    # make the scripts executable
    chmod +x weblogic-deploy/bin/*.sh
  5. Modifiez le fichier de modèle de domaine source afin qu'il corresponde à la topologie de domaine cible.
    • source.yaml: fichier de modèle qui décrit le domaine, sa topologie (serveurs, clusters, etc.), les ressources et les déploiements d'application.

    • source.zip: contient les fichiers de l'application.

    • source.properties: contient les espaces réservés des informations d'identification ne pouvant pas être prises en charge.

    Remarque :

    Lors de la modification du fichier yaml, assurez-vous que les espaces sont utilisés, et que les onglets et l'analyse ne seront pas utilisés. Dans YAML, le retrait représente l'imbrication. Par conséquent, lorsque vous supprimez une clé de niveau supérieur, vous devez supprimer toutes les clés imbriquées jusqu'à la clé suivante au même niveau.
    1. Modifiez le fichier .yaml afin de conserver uniquement les ressources des sections et appDeployments.
      • Supprimez la totalité de la section domainInfo.

      • Supprimez la totalité de la section topology.

      • WebLogic Server Enterprise Edition : pour chaque application imbriquée sous resources, puis JDBCSystemResource et appDeployment, modifiez la clé Target afin qu'elle corresponde au nom de cluster sur Oracle Cloud Infrastructure où le nom de cluster est <domain_prefix>_cluster, par exemple ee_cluster.

      • WebLogic Server Standard Edition : pour chaque application imbriquée sous resources, puis JDBCSystemResource et appDeployment, modifiez la clé Target afin qu'elle corresponde à la liste des noms de serveur géré sur Oracle Cloud Infrastructure que l'application doit cibler selon le modèle <domain_prefix>_server_<id>. Séparez les entrées de liste par une virgule et placez-les entre guillemets simples ou doubles. Par exemple, 'se_server_0,se_server_1,se_server_3'

    2. Modifiez les URL des sources de données sous chaque clé JDBCDriverParams.
      L'URL doit suivre le modèle :
      'jdbc:oracle:thin:@//<hostname>:<port>/<your_pdb_name>.<subdomain_name>'
      hostname, port et subdomain_name proviennent de la chaîne de connexion à la base de données et your_pdb_name est le nom de la base de données pluggable qui héberge la base de données (pas le nom racine de la base de données Conteneur).
      • Chaîne de connexion de noeud unique : <hostname>:<port>/<cdb_root_name>.<db_subnet_domain_name>
      • Chaîne de connexion de noeud multiple : <hostname>-scan:<port>/<cdb_root_name>.<db_subnet_domain_name>

      Utilisez l'une ou l'autre des formes si la base de données ne contient qu'un noeud ; toutefois, nous vous recommandons d'inclure le composant -scan pour garantir un repérage approprié et prendre en charge la mise à l'échelle future.

    3. Ajouter la clé StagingMode si elle est manquante

      Pour chaque application sous appDeployments, assurez-vous que la clé StagingMode est définie sur stage ou ajoutez-la si elle n'est pas présente. Ce paramètre déploie automatiquement les fichiers sur les autres serveurs gérés ciblés ou sur les serveurs gérés du cluster. Sans ce paramètre, vous devez déployer manuellement le fichier sur chaque serveur.

    4. Modifiez le fichier source.properties et mettez à jour le mot de passe de connexion JDBC de la base de données ou de la base de données que vous avez migrée.
  6. Exécutez le script WebLogic Deploy Tooling updateDomain pour mettre à jour le domaine.
    # make sure the needed variables are set:
    echo $DOMAIN_HOME
    echo $MW_HOME
    
    # run WebLogic Deploy Tooling updateDomain script in online mode
    weblogic-deploy/bin/updateDomain.sh \
    -oracle_home $MW_HOME \
    -domain_home $DOMAIN_HOME \
    -model_file source.yaml \
    -variable_file source.properties \
    -archive_file source.zip \
    -admin_url t3://$(hostname -i):9071
    
    # domain deployed before 05/19/2020 may need to use port 7001

    Remarques concernant cet exemple :

    • Le paramètre -domain_type n'est pas utilisé ici car il s'agit d'une mise à jour uniquement. L'utilisation de l'option -domain_type JRF (même pour un domaine JRF) entraîne des problèmes de mise à jour avec WLDT pour les mises à jour en ligne.

    • L'élément -admin_url requiert le protocole t3 avec l'adresse IP privée locale du serveur d'administration, extraite par la commande hostname -i. HTTP ou HTTPS via l'adresse IP publique ne fonctionne pas.

    • Fournir le fichier -admin_url dans cette commande garantit que le domaine est mis à jour en ligne. Les domaines ne peuvent pas tous être mis à jour en ligne, mais à moins que la topologie ne soit modifiée (ce qui n'est pas le cas ici), elle doit fonctionner pour la plupart des domaines.

    • La mise à jour en ligne vous permet de déployer les applications et les ressources sans redémarrer les serveurs. Si vous effectuez une mise à jour hors ligne, supprimez l'option -admin_url, puis arrêtez et redémarrez le serveur WebLogic à l'aide des scripts stopWebLogic.sh et startWebLogic.sh. Utilisez startWeblogic.sh &! pour envoyer la commande à l'arrière-plan et la supprimer, afin qu'elle survienne à l'exit du terminal.

    • Si vous exécutez la mise à jour hors ligne, vous devez arrêter et redémarrer le serveur deux fois pour que l'indicateur StagingMode=stage soit pris en compte. Le premier redémarrage met à jour la configuration et le second redémarrage active le déploiement StagingMode.