盐堆主站找不到执行模块,说不可用



我写了一个简单的模块,把文件放在<salt_file_roots>/_modules下,内容大致如下:

# foomod.py
def foo(*args):
    return {'name': 'foo', 'result': True}

我已经运行了salt minion saltutil.sync_all,看到了我添加的模块的输出。我可以看到它在仆从日志中也是同步的。

minion:
    - modules.foomod

1。我可以从仆从中使用它:

$ salt-call foomod.foo
local:
    ----------
    name:
        foo
    result:
        True

2。我可以使用module.run将其包含在状态中并运行该状态,并且它也可以工作。

3。但是当我从master调用它时,会发生这样的情况:

$ salt minion foomod.foo
minion:
    - 'foomod.foo' is not available.

当我从master

调用时,我也会在从属日志中看到调用
2014-07-29 15:30:44,290 [salt.minion      ][INFO    ] User root Executing command foomod.foo with jid 20140729153044256654
2014-07-29 15:30:44,291 [salt.minion      ][DEBUG   ] Command details {'tgt_type': 'glob', 'jid': '20140729153044256654', 'tgt': 'minion', 'ret': '', 'user': 'root', 'arg': [], 'fun': 'foomod.foo'}
2014-07-29 15:30:44,308 [salt.minion      ][INFO    ] Returning information for job: 20140729153044256654

所以要么我跳过了让master直接运行的部分,要么我想象了一个不存在的特性。

回答自己的问题。盐主含pycrypto==2.6.1,仆从含pycrypto==2.4.1。在minion上更新解决了这个问题

最新更新