Création de vos propres commandes Run Engine

Si les commandes Run Engine prédéfinies ne répondent pas à vos exigences, vous pouvez créer vos propres commandes.

Remarque : L'utilisation des commandes Run Engine est une approche utilisée par HCL pour implémenter des configurations d'environnement. En fonction de votre scénario, vous pouvez implémenter une solution personnalisée pour modifier les paramètres de l'environnement et les configurations de conteneurs qui répondront le mieux à vos besoins.

Pourquoi et quand exécuter cette tâche

Vous pouvez définir des commandes à l'aide de deux approches principales :
  • Si vous souhaitez utiliser des classes Java ou Groovy pour modifier les configurations, vous pouvez définir votre classe pour hériter de la classe BaseCommand (dans Docker_container/SETUP/lib/engine-command.jar).
  • Si vous souhaitez utiliser d'autres langages de script, tels que Python, vous pouvez définir votre classe à hériter à partir de ScriptCommand.

Procédure

  1. Créez un projet Java ou Groovy vide et créez trois répertoires enfants (src, META-INF, scripts).
    • project
      • src
      • META-INF
      • scripts
        Remarque : Le répertoire scripts n'est requis que lors de l'utilisation de ScriptCommand.
  2. Ajoutez engine-command.jar en tant que dépendance.
  3. Créez une classe qui hérite de BaseCommand ou de ScriptCommand en fonction du type de code ou de script que vous souhaitez déployer. Au sein de la classe, créez une méthode runCmd pour définir vos actions.
    • Etendez BaseCommand si vous souhaitez implémenter la logique en utilisant le code Java ou Groovy.
    • Etendez ScriptCommand si vous souhaitez implémenter la logique en utilisant d'autres langages de script tels que Python.
    Par exemple,
    • La classe suivante WCCommand hérite de ScriptCommand, et la commande produit une chaîne.
      class WCCommand extends ScriptCommand{
      void runCmd(String[] args) {
          println "wc-sample"
      }
      }
      
    • La classe suivante WCCommand hérite de BaseComand.
      import com.ibm.commerce.engine.cmd.BaseCommand
      
      class WCCommmand extends BaseCommand {
      	public void runCmd(String[] args) {
           // ADD logic here to modify environment parameters and container configurations
      	}
      }
      
  4. Enregistrez le fichier dans le répertoire src.
  5. Si nécessaire, créez des scripts dans le répertoire script pour terminer une configuration.
    Par exemple, le script Python suivant (createJMSQueue.py) utilise des commandes de script wsadmin WebSphere Application Server pour configurer les ressources JMS IBM MQ.
    queueName = sys.argv[1]
    queueManager = sys.argv[2]
    AdminTask.createWMQQueue('server1(cells/localhost/nodes/localhost/servers/server1|server.xml)', '[-name '+ jndiName +' -jndiName '+jndiName+' -queueName '+ queueName + ' -qmgr '+queueManager+' -description JMSQueue ]') 
    print ("Create JMS queues successfully!")  
    AdminConfig.save()
  6. Créez un fichier de propriétés et enregistrez-le dans le répertoire META-INF.
    Nommez le fichier comme le nom de la commande Run Engine que vous souhaitez utiliser.
    Par exemple, si vous souhaitez utiliser une commande Run Engine comme
    run create-jms-queues
    Créez ensuite un fichier de propriétés nommé create-jms-queues.properties.
  7. Dans le fichier de propriétés, spécifiez une paire nom-valeur main.class pour spécifier la classe que vous avez créée. Spécifiez également une paire nom-valeur main.script si vous avez créé un script à l'étape 5.
    Par exemple,
    • Utilisation de l'exemple de script créé à l'étape 5 :
      main.class=com.ibm.commerce.engine.cmd.twas.WasCommand
      main.script=createJMSQueue.py
      
    • A l'aide de l'exemple de BaseComand créé à l'étape 3 :
      main.class=WCCommand
  8. Créez et incluez les répertoires /src et /META-INF dans un fichier JAR.
  9. Créez ou mettez à jour un fichier Docker pour inclure et utiliser votre commande Run Engine personnalisée.
    • Assurez-vous que vous copiez votre fichier JAR vers le chemin d'accès /SETUP/lib/ du conteneur Docker.
    • Assurez-vous de copier vos scripts vers le chemin d'accès /SETUP/scripts/ du conteneur Docker.
    Par exemple,
    FROM <dockerhost>/commerce/ts-app:latest
    COPY new.jar /SETUP/lib
    COPY scripts/ /SETUP/scripts
    RUN  run create-jms-queues inbound mq FVT

Résultats

Votre commande Run Engine personnalisée est implémentée et peut maintenant être utilisée pour apporter des modifications de configuration d'environnement.