Red Hat Training

A Red Hat training course is available for Red Hat CloudForms

第 10 章 基于事件自动化任务

在 CloudForms 中设置 Lenovo 物理基础架构供应商后,就可以在 XClarity Administrator 所管理的服务器上发生特定事件时,自动执行特定的任务。若要创建自动化任务,您必须创建和配置自定义域。若要在特定事件发生时自动调用任务,您必须创建、配置和分配自定义策略。

如需关于 CloudForms 自动化功能的更多信息,请参见 CloudForms 脚本操作指南网站。

10.1. 创建自动化任务

若要创建自动化任务,您必须创建和配置自定义域。

是一系列可以自动化的任务。这些任务按照域优先级定义的次序运行。高优先级域中的任务会覆盖低优先级域中的相同任务。这样,CloudForms 可以提供核心域,同时允许您利用自己的自定义域来覆盖自动化任务。

每个域包含一组命名空间。命名空间是用于组织任务并对任务进行分类的容器。命名空间内可以包含子命名空间和类。

是用于特定任务的模板。类使用模式为类实例填充默认值。类实例中可以包含属性、调用方法和关系。

方法定义您要执行的任务。它使用 Ruby 代码来运行各种操作。

例如,下列步骤描述了如何创建一个自动化任务,以便对 Lenovo 物理基础架构供应商识别的第一台物理服务器执行电源操作(如开机、关机或重启服务器)。

注意: 您必须以有权创建域的用户身份登录 CloudForms。默认用户为 admin,密码为 smartvm。

10.1.1. 第 1 步:创建自定义域。

  1. 前往自动化 > 自动化 > 浏览
  2. 单击顶部菜单中的配置 > 添加新的域
  3. 输入域名(例如,Lenovo)。
  4. 选择启用以启用该域。
  5. 单击添加

10.1.2. 第 2 步:把 LenovoXclarity 和 Event Handler 类添加到自定义域。

  1. 复制 LenovoXclarity 类到自定义域。

    1. 选择 ManageIQ 域。
    2. 前往 ManageIQ > System > Event > EmsEvent > LenovoXclarity.
    3. 单击顶部菜单中的配置 > 复制选择的类
    4. 至域下拉菜单中选择自定义域。
    5. 单击复制
  2. 把 Event Handler 类复制到自定义域。

    1. 选择 ManageIQ 域。
    2. 前往 ManageIQ > System > Event Handlers
    3. 选择您所需的实例(例如,event_action_policy)。
    4. 单击顶部菜单中的配置 > 复制这个实例
    5. 至域下拉菜单中选择自定义域。
    6. 单击复制
    7. 选择 event_action_policy 方法。
    8. 单击配置图标,然后单击复制这个方法图标。
    9. 单击复制
  3. 创建 LenovoXclarity 类的新实例。

    1. 选择 ManageIQ 域。
    2. 浏览到自定义域的名称(例如,Lenovo),再单击系统 > 事件 > EmsEvent >LenovoXclarity
    3. 单击顶部菜单中的配置 > 添加新的实例
    4. 输入新类实例的名称(例如 FQXHMTS0003G,这是当无法从设备获得清单数据时产生的事件)。

      重要:类实例名称必须与触发要调用的任务的事件名称相同。CloudForms 按照该名称来匹配类实例和事件。若要查找事件名称,请参见 XClarity Administrator 在线文档中的消息

    5. 添加在字段的 rel3 中复制的事件处理程序的路径。

      可用的策略操作有三种:

      • 物理服务器重置
      • 物理服务器启动
      • 物理服务器关机

        可用的策略事件有三种:

      • physical_server_reset
      • physical_server_start
      • physical_server_shutdown

        策略操作和策略事件必须匹配。例如,使用策略操作物理服务器关机的以下路径:

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

      policy_event 值与应用的策略操作匹配。

    6. 单击添加

10.1.3. 第 3 步:创建命名空间。

  1. 选择自定义域 (Lenovo)。
  2. 单击顶部菜单中的配置 > 添加新的命名空间
  3. 输入命名空间的唯一名称(例如,Functions)。
  4. 单击添加

10.1.4. 第 4 步:创建类。

  1. 选择您在上一步中创建的命名空间(例如,Functions)。
  2. 单击顶部菜单中的配置 > 添加新的类
  3. 输入类的唯一名称(例如,Power_actions)。
  4. 单击添加

10.1.5. 第 5 步:创建类的方法。

  1. 创建方法。

    1. 选您创建的类(例如 Power_actions)。
    2. 单击方法选项卡。
    3. 单击顶部菜单中的配置 > 添加新的方法
    4. 选择 “inline” 作为类型。
    5. 输入方法的名称(例如,power_off)。
    6. 数据字段中输入以下脚本:

      server = $evm.vmdb('PhysicalServer').first
      $evm.log(:info, "Powering Server #{server.name} OFF")
      server.power_off
      exit MIQ_OK
    7. 单击验证以验证语法。
    8. 单击添加
  2. 为类添加一个模式。

    1. 选您创建的类(例如 Power_actions)。
    2. 选择模式选项卡。
    3. 单击顶部菜单中的配置 > 编辑所选模式
    4. 单击 + 图标,为该模式添加一个字段。
    5. 输入 “execute” 作为名称。
    6. 选择“Method”作为类型。
    7. 选择 “String” 作为数据类型。
    8. 输入 “Power_actions” 作为默认值。
    9. 单击勾号图标。
    10. 单击保存
  3. 添加方法到该类。

    1. 选择实例选项卡。
    2. 输入您之前创建的方法的名称(例如, power_off)。
    3. 单击添加

10.2. 在事件发生时调用自动化任务

若要在特定事件发生时自动调用任务,您必须创建、配置和分配自定义策略。

例如,下列步骤描述了如何在 CloudForms 收到(您定义的)特定事件时执行一个特定的自动化任务。

注意: 您必须以有权创建策略的用户身份登录 CloudForms。默认用户为 admin,密码为 smartvm。

10.2.1. 第 1 步:创建和配置策略。

  1. 前往控制 > 浏览器
  2. 单击策略 > 所有策略 > 控制策略 > 物理基础架构控制策略
  3. 单击顶部菜单中的配置 > 添加新的物理服务器控制策略
  4. 输入描述(例如,Lenovo_Policy)。
  5. 单击添加

10.2.2. 第 2 步:创建自定义操作。

  1. 创建自定义操作。

    1. 前往动作 > 所有动作
    2. 单击顶部菜单中的配置 > 添加新的动作
    3. 输入描述(例如,Power_Off_Server)。
    4. 选择调用自定义自动化作为操作类型。
    5. 输入相关的消息(例如,create)。
    6. 在“请求”字段中填入 Call_Instance
    7. 按照所给的顺序指定下列属性:

      • 指定命名空间属性,并将其值设为新的域和命名空间 (<domain_name>/<namespace>)(例如,Lenovo/Functions)。
      • 指定 属性,并将其值设为对应的类(例如,Power_actions)。
      • 指定实例属性,并将其值设为对应的实例(例如,Physical_Server_PowerOff)。
    8. 单击添加
  2. 配置您创建的策略。

    1. 选择新策略(例如,Lenovo_Policy)。
    2. 单击顶部菜单中的配置 > 编辑这个策略的事件分配
    3. 找到物理服务器操作,再选择物理服务器关机选项。
    4. 单击保存
    5. 选择新策略事件。
    6. 单击顶部菜单中的配置 > 为这个策略事件编辑动作
    7. 如果所有条件都为 True 时的动作顺序 字段中,选择您在上一步中创建的自定义操作(例如,Power_Off_Server)。
    8. 单击保存

10.2.3. 第 3 步:创建和分配策略配置集。

  1. 创建策略配置集。

    1. 单击策略配置集 > 所有策略配置集
    2. 单击顶部菜单中的配置 > 添加新的策略配置集
    3. 输入策略的描述(例如,Lenovo_Policy_Profile)。
    4. 选择您的策略,并将它拖到右侧。
    5. 单击添加
  2. 将策略配置集分配到 Lenovo 物理基础架构供应商:

    1. 前往计算 > 物理基础架构 > 供应商
    2. 指定您要向其分配策略配置集的物理基础架构供应商。
    3. 从顶部菜单中,单击策略 > 管理策略
    4. 选择您刚刚创建的策略配置集(例如,Lenovo_Policy_Profile)。
    5. 单击保存

供应商分配配置集