自定义恢复工作流配置指南

如果操作者希望定制化的恢复工作流,以下是关于如何在 Masakari 中将来自第三方库的自定义任务与标准恢复工作流关联的指南。

  1. 首先,确保所需的第三方库已安装在 Masakari 引擎节点上。以下是示例自定义任务文件。例如

from oslo_log import log as logging
from taskflow import task

LOG = logging.getLogger(__name__)


class Noop(task.Task):

    def __init__(self, novaclient):
        self.novaclient = novaclient
        super(Noop, self).__init__()

    def execute(self, **kwargs):
        LOG.info("Custom task executed successfully..!!")
        return
  1. 在第三方库的 setup.cfg 中配置自定义任务如下

例如,第三方库的 setup.cfg 将具有以下入口点

masakari.task_flow.tasks =
    custom_pre_task = <custom_task_class_path_from_third_party_library>
    custom_main_task = <custom_task_class_path_from_third_party_library>
    custom_post_task = <custom_task_class_path_from_third_party_library>

注意:第三方库的 setup.cfg 中的入口点键应与 Masakari setup.cfg 中相应的故障恢复键相同。

  1. 在 Masakari 的新配置文件 custom-recovery-methods.conf 中配置自定义任务,使用与 setup.cfg 中给定的名称相同,以定位类路径。例如(在主机自动故障配置选项中添加自定义任务)

host_auto_failure_recovery_tasks = {
'pre': ['disable_compute_service_task', 'custom_pre_task'],
'main': ['custom_main_task', 'prepare_HA_enabled_instances_task'],
'post': ['evacuate_instances_task', 'custom_post_task']}
  1. 如果自定义任务需要任何配置参数,则将它们添加到 custom-recovery-methods.conf 中,与它们在第三方库中注册的相同组/部分下。所有与恢复方法定制相关的配置参数都应包含在新添加的 conf 文件中。操作者将负责自行生成 masakari.conf 和相关的配置文件。

  2. 操作者应确保每个任务的输出可供需要它们的后续任务使用。