开发ansible自定义插件(操作)时,如何为所有主机生成一些通用数据?

时间:2019-10-11 06:44:47

标签: python ansible

我正在编写一个具有针对角色的自定义操作的自定义模块。

该操作将在dict中生成一些具有合理数量的键/值(例如100)的数据,但这可能需要一两秒钟。

所有主机的这些键都相同,除了不是所有主机都将使用所有键(它们可能会留下一两个键)。

如何才能“缓存”这些键/值,使其仅生成一次(出于性能原因),然后并行应用于所有主机?

我尝试在ActionModule内创建一个类变量,但这显然是一个元类,因此每次调用它都会是一个不同的类对象(我故意说“类对象”)

class ActionModule(ActionBase):
    data = None

    def run(self, tmp=None, task_vars=None):
        if self.data is None:  # That is not thread safe, but just pretend
            self.data = "a lot of data here"  # just pretend again

        return self._execute_module(...)

如上所述,此解决方案将多次生成data,对采用哪种方法有何建议?

谢谢。

0 个答案:

没有答案