Crear sus propios mandatos Run Engine

Si los mandatos Run Engine predeterminados no satisfacen sus requisitos, puede crear sus propios mandatos.

Nota: Uno de los métodos que utiliza HCL para implementar configuraciones de entorno es utilizar mandatos Run Engine. En función de su situación, es posible que quiera implementar una solución personalizada para modificar los parámetros de entorno y las configuraciones del contenedor que se adecúen mejor a sus necesidades.

Por qué y cuándo se efectúa esta tarea

Puede definir mandatos utilizando dos métodos principales:
  • Si quiere utilizar clases Java o Groovy para cambiar las configuraciones, puede definir la clase para que herede de la clase BaseCommand (en Docker_container/SETUP/lib/engine-command.jar).
  • Si desea utilizar otros lenguajes de programación, como Python, puede definir la clase para que herede de ScriptCommand.

Procedimiento

  1. Cree un proyecto Java o Groovy vacío y cree tres directorios hijo (src, META-INF y scripts).
    • project
      • src
      • META-INF
      • scripts
        Nota: El directorio scripts solo es necesario cuando se utiliza ScriptCommand.
  2. Añada la dependencia engine-command.jar.
  3. Cree una clase que herede de BaseCommand o ScriptCommand basada en el tipo de código o script que quiera desplegar. Dentro de la clase, cree un método runCmd para definir sus acciones.
    • Amplíe BaseCommand si desea implementar la lógica utilizando código Java o Groovy.
    • Amplíe ScriptCommand si desea implementar la lógica utilizando otros lenguajes de programación como, por ejemplo, Python.
    Por ejemplo,
    • La clase WCCommand siguiente hereda de ScriptCommand y el mandato genera una serie.
      class WCCommand extends ScriptCommand{
      void runCmd(String[] args) {
          println "wc-sample"
      }
      }
      
    • La clase WCCommand siguiente hereda 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. Guarde la clase en el directorio src.
  5. Si es necesario, cree scripts en el directorio script para completar una configuración.
    Por ejemplo, el siguiente script de Python (createJMSQueue.py) utiliza mandatos WebSphere Application Server de script wsadmin para configurar recursos JMS de 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. Cree un archivo de propiedades y guárdelo en el directorio META-INF.
    Asigne al archivo el nombre del mandato de Run Engine que desea utilizar.
    Por ejemplo, si desea utilizar un mandato de Run Engine como
    run create-jms-queues
    Cree un archivo de propiedades que se denomine create-jms-queues.properties.
  7. En el archivo de propiedades, especifique un par nombre-valor main.class para especificar la clase que ha creado. Especifique también un par nombre-valor main.script si ha creado un script en el paso 5.
    Por ejemplo,
    • Utilizando el script de ejemplo creado en el paso 5:
      main.class=com.ibm.commerce.engine.cmd.twas.WasCommand
      main.script=createJMSQueue.py
      
    • Utilizando el ejemplo BaseComand creado en el paso 3:
      main.class=WCCommand
  8. Cree y empaquete los directorios /src y /META-INF en un archivo jar.
  9. Cree o actualice un Dockerfile para incluir y utilizar el mandato de Run Engine personalizado.
    • Asegúrese de copiar el archivo jar en la vía de acceso /SETUP/lib/ del contenedor Docker.
    • Asegúrese de copiar los scripts en la vía de acceso /SETUP/scripts/ del contenedor Docker.
    Por ejemplo,
    FROM <dockerhost>/commerce/ts-app:latest
    COPY new.jar /SETUP/lib
    COPY scripts/ /SETUP/scripts
    RUN  run create-jms-queues inbound mq FVT

Resultados

Se implementa el mandato de Run Engine personalizado y ahora se puede utilizar para realizar cambios en la configuración del entorno.