首页 > 解决方案 > Ansible 自定义插件

问题描述

我的剧本和 python 功能中有两个字典:例如。

mysql_dict_server1={"log":{"log_slow":"False"},"mysqldump":{"buffer":"10M","max_packet":"5M","uniq":"DO NOT DEL","change":"abc"}}`

mysql_dict_server2={"log":{"log_slow":"False/Chnaged"},"mysqldump":{"buffer":"10M","change":"cba","added":"TREUE"}}

def merge(a, b):
 for key in b:
  if key in a:
   if isinstance(a[key], dict) and isinstance(b[key], dict):
    merge(a[key], b[key])
   else:
    a[key] = b[key]
  else:
   a[key] = b[key]
 return a

那么我如何编写我的自定义模块/插件来传递args(mysql_dict_serverX)并获得新结果,例如:

- set_fact:
     merged: return value from fuction.

或直接在我的 jinja2 模板中使用合并 {% for key,val in merged_server.items() %}......等

标签: pythonansible

解决方案


推荐阅读