Saltstack master无法找到执行模块,说不可用

Ere*_*ven 5 python salt-stack

我写了一个简单的模块,并把文件放在下面<salt_file_roots>/_modules,内容或多或少:

# foomod.py
def foo(*args):
    return {'name': 'foo', 'result': True}
Run Code Online (Sandbox Code Playgroud)

我跑了salt minion saltutil.sync_all,看到了我添加的模块的输出.我可以看到它也在minion日志中同步.

minion:
    - modules.foomod
Run Code Online (Sandbox Code Playgroud)

1.我可以从附庸使用它:

$ salt-call foomod.foo
local:
    ----------
    name:
        foo
    result:
        True
Run Code Online (Sandbox Code Playgroud)

2.我可以将它包含在使用module.run和运行状态的状态中,它也可以工作.

3.但是,当我把它从主,出现这种情况:

$ salt minion foomod.foo
minion:
    - 'foomod.foo' is not available.
Run Code Online (Sandbox Code Playgroud)

当我从主人那里打电话时,我也看到了对minion日志的调用

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
Run Code Online (Sandbox Code Playgroud)

所以要么我跳过了我直接从master运行它的部分,或者我想象了一个不存在的功能.

任何帮助表示赞赏.

Ere*_*ven 2

回答自己的问题。盐主人有pycrypto==2.6.1,奴才有pycrypto==2.4.1。在minion上更新它解决了它。