自定义恢复工作流配置指南¶
如果操作者希望定制化的恢复工作流,以下是关于如何在 Masakari 中将来自第三方库的自定义任务与标准恢复工作流关联的指南。
首先,确保所需的第三方库已安装在 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
在第三方库的 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 中相应的故障恢复键相同。
在 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']}
如果自定义任务需要任何配置参数,则将它们添加到 custom-recovery-methods.conf 中,与它们在第三方库中注册的相同组/部分下。所有与恢复方法定制相关的配置参数都应包含在新添加的 conf 文件中。操作者将负责自行生成 masakari.conf 和相关的配置文件。
操作者应确保每个任务的输出可供需要它们的后续任务使用。