Capítulo 10. Automatizar las tareas según los eventos

Puede usar CloudForms para realizar tareas específicas de forma automática cuando ciertos eventos ocurren en los servidores administrados por XClarity Administrator con un proveedor de infraestructura física de Lenovo. Para crear una tarea automática, debe crear y configurar un dominio personalizado. Para invocar automáticamente la tarea cuando ocurre un evento determinado, configure y asigne una política personalizada.

Para más información sobre la función de automatización de CloudForms, ver el sitio web Scripting Actions in CloudForms.

10.1. Crear una tarea automática

Para crear una tarea automática, primero debe crear y configurar un dominio personalizado.

Un dominio es un conjunto de tareas que se pueden automatizar. Las tareas se ejecutan en una secuencia definida por la prioridad del dominio. Una tarea en un dominio con una prioridad más alta anula la misma tarea en un dominio de prioridad más baja. De esta manera, CloudForms proporciona dominios principales y le permite anular las tareas automáticas mediante sus propios dominios personalizados.

Cada dominio contiene un conjunto de espacios de nombre. Un espacio de nombre es un contenedor que organiza y categoriza las tareas. Un espacio de nombre puede contener espacios de nombre hijos y también, clases.

Una clase es una plantilla para una tarea específica. Una clase utiliza un esquema para completar una instancia de una clase con valores predeterminados. Una instancia de una clase puede contener atributos, invocación de métodos y relaciones.

Los métodos definen la tarea que desea realizar. Utiliza el código Ruby para ejecutar varias operaciones.

A modo de ejemplo, los siguientes pasos describen cómo crear una tarea automática para realizar una acción de encendido (como encender, apagar o reiniciar el servidor) en el primer servidor físico conocido del proveedor de infraestructura física de Lenovo.

Nota: debe iniciar sesión en CloudForms como usuario con permiso para crear dominios. El usuario predeterminado es admin y la contraseña es smartvm.

10.1.1. Paso 1. Crear un dominio personalizado.

  1. Navegue a Automation > Automate > Explorer.
  2. Haga clic en Configuration > Add a New Domain en el menú principal.
  3. Ingrese un nombre de dominio (por ejemplo: Lenovo).
  4. Seleccione Enable para habilitar el dominio.
  5. Haga clic en Add.

10.1.2. Paso 2. Añadir la clase de LenovoXclarity y controlador de eventos al dominio personalizado.

  1. Copiar la clase de LenovoXclarity al dominio personalizado.

    1. Seleccione el dominio principal de ManageIQ.
    2. Navegue a ManageIQ > System > Event > EmsEvent > LenovoXclarity.
    3. Haga clic en Configuration > Copy this Class en el menú principal.
    4. Seleccione el dominio personalizado en el menú desplegable de To Domain .
    5. Haga clic en Copy.
  2. Copiar la clase de controlador de eventos al dominio personalizado.

    1. Seleccione el dominio principal de ManageIQ.
    2. Navegue a ManageIQ > System > Event Handlers.
    3. Seleccione la instancia que desee (por ejemplo: evento_acción_política).
    4. Haga clic en Configuration > Copy this Instance en el menú principal.
    5. Seleccione el dominio personalizado en el menú desplegable de To Domain .
    6. Haga clic en Copy.
    7. Seleccione el método para evento_acción_política.
    8. Haga clic en el ícono Configuration y luego en el ícono Copy this method.
    9. Haga clic en Copy.
  3. Crear una nueva instancia de la clase de LenovoXclarity.

    1. Seleccione el dominio principal de ManageIQ.
    2. Navegue hasta el nombre del dominio personalizado (por ejemplo: Lenovo) y haga clic en System > Event > EmsEvent >LenovoXclarity.
    3. Haga clic en Configuration > Add a new Instance en el menú principal.
    4. Ingrese un nombre para la nueva instancia de clase (por ejemplo: FQXHMTS0003G que es el evento generado cuando los datos de inventario no se pueden recuperar desde un dispositivo).

      Importante: El nombre de la instancia de clase debe ser el mismo que el nombre del evento que activó la tarea por invocar. CloudForms relaciona la instancia de clase con el evento mediante este nombre. Para encontrar el nombre del evento, consulte Mensajes en la documentación en línea de XClarity Administrator.

    5. Añada la ruta a los controladores del evento copiada en rel3 del campo.

      Existen tres operaciones de política disponibles:

      • Restablecer el servidor físico
      • Iniciar el servidor físico
      • Apagar el servidor físico

        Existen tres eventos de política disponibles:

      • Restablecer_servidor_físico
      • Iniciar_servidor_físico
      • Apagar_servidor_físico

        Las acciones y los eventos de política deben coincidir. Por ejemplo, use la siguiente ruta para la operación de política Physical Server Shutdown:

        /System/event_handlers/event_action_policy?target=physical_server&policy_event=physical_server_shutdown&param=

      El valor policy_event corresponde a la operación de política aplicada.

    6. Haga clic en Add.

10.1.3. Paso 3. Crear un espacio de nombre.

  1. Seleccione el dominio personalizado (Lenovo) .
  2. Haga clic en Configuration > Add a New Namespace en el menú principal.
  3. Ingrese un nombre de dominio único para el espacio de nombre (por ejemplo: Funciones).
  4. Haga clic en Add.

10.1.4. Paso 4. Crear una clase.

  1. Seleccione el nombre de espacio que creó en el paso anterior (por ejemplo: Funciones).
  2. Haga clic en Configuration > Add a New Class en el menú principal.
  3. Ingrese un nombre único para la clase (por ejemplo: Acciones_de_encendido).
  4. Haga clic en Add.

10.1.5. Paso 5. Crear un método para la clase.

  1. Crear un método.

    1. Seleccione la clase que creó (por ejemplo: Acciones_de_encendido).
    2. Haga clic en la pestaña Methods.
    3. Haga clic en Configuration > Add a new method en el menú principal.
    4. Seleccione “inline” para el tipo.
    5. Ingrese un nombre para el método (por ejemplo: apagado).
    6. Ingrese el siguiente scrip en el campo Data:

      server = $evm.vmdb('PhysicalServer').first $evm.log(:info, "Powering Server #{server.name} OFF")
      server.power_off exit MIQ_OK
    7. Haga clic en Validate para verificar la sintaxis.
    8. Haga clic en Add.
  2. Añadir un esquema a la clase.

    1. Seleccione la clase que creó (por ejemplo: Acciones_de_encendido).
    2. Seleccione la pestaña Schema.
    3. Haga clic en Configuration > Edit selected Schema en el menú principal.
    4. Haga clic en el ícono + para agregar un campo al esquema.
    5. Ingrese “execute” para el nombre.
    6. Seleccione “Método” para el tipo.
    7. Seleccione “String” para el tipo de datos.
    8. Seleccione “Power_actions” para el valor predeterminado.
    9. Haga clic en el botón de verificación.
    10. Haga clic en Save.
  3. Añadir el método a la clase.

    1. Seleccione la pestaña Instances.
    2. Ingrese el nombre del método que creó anteriormente (por ejemplo: apagado).
    3. Haga clic en Add.

10.2. Invocar una tarea automática cuando ocurre un evento

Para invocar una tarea automática cuando ocurre un evento determinado, debe crear, configurar y asignar una política personalizada.

A manera de ejemplo, los siguientes pasos describen cómo realizar una tarea automática específica cuando CloudForms recibe determinados eventos (que usted define).

Nota: debe iniciar sesión en CloudForms como usuario con permiso para crear políticas. El usuario predeterminado es admin y la contraseña es smartvm.

10.2.1. Paso 1. Crear y configurar una política.

  1. Navegue a Control > Explorer.
  2. Haga clic en Policies > All Policies > Control Policies > Physical Infrastructure Control Policies.
  3. Haga clic en Configuration > Add a new Physical Server Control Policy en el menú principal.
  4. Ingrese una descripción (por ejemplo, Política_de_Lenovo).
  5. Haga clic en Add.

10.2.2. Paso 2. Crea una acción personalizada.

  1. Crear una acción personalizada.

    1. Navegue a Action > All Actions.
    2. Haga clic en Configuration > Add a new action en el menú principal.
    3. Ingrese una descripción (por ejemplo, Apagado_del_servidor).
    4. Seleccione Invoke a custom Automation para el tipo de acción.
    5. Ingrese un mensaje (por ejemplo, crear).
    6. Complete el campo de solicitud con Call_Instance.
    7. Especifique los siguientes atributos en el orden dado:

      • Especifique el atributo Namespace y establezca el valor del nuevo dominio y espacio de nombre (<domain_name>/<namespace>) (por ejemplo: Lenovo/funciones).
      • Especifique el atributo Class y establezca el valor de la clase (por ejemplo: Acciones_de_encendido).
      • Especifique el atributo Instance y establezca el valor de la instancia (por ejemplo: Apagado_del_servidor_físico).
    8. Haga clic en Add.
  2. Configurar la política que creó.

    1. Seleccione la nueva política (por ejemplo: Política_de_Lenovo).
    2. Haga clic en Configuration > Edit this policy’s Event assignments en el menú principal.
    3. Encuentre la operación del servidor físico y seleccione la opción Physical Server Shutdown.
    4. Haga clic en Save.
    5. Seleccione el nuevo evento de política.
    6. Haga clic en Configuration > Edit Actions for this policy Event en el menú principal.
    7. Desde el campo Order of Actions if All Conditions are True, seleccione la acción personalizada que creó en el paso anterior (por ejemplo: Apagado_del_servidor).
    8. Haga clic en Save.

10.2.3. Paso 3. Crear y asignar un perfil de política.

  1. Crear un perfil de política.

    1. Haga clic en Policy Profiles > All Policy Profiles.
    2. Haga clic en Configuration > Add a new Policy Profile en el menú principal.
    3. Ingrese una descripción para la política (por ejemplo, Pefil_de_política_de_Lenovo).
    4. Seleccione su política, arrástrela hacia la derecha y suéltela.
    5. Haga clic en Add.
  2. Asignar el perfil de política a los proveedores de infraestructura física de Lenovo:

    1. Navegue a Compute > Physical Infrastructure > Providers..
    2. Seleccionar los proveedores de infraestructura física a los que desea asignar el perfil de política.
    3. Haga clic en Policy > Manage Policies en el menú principal.
    4. Seleccione el perfil de política que acaba de crear (por ejemplo: Perfil_de_política_de_Lenovo).
    5. Haga clic en Save.

perfil asignado a proveedor