我编写了一个简单的模块并将文件放在<salt_file_roots>/_modules
下,内容或多或少:
# foomod.py
def foo(*args):
return {'name': 'foo', 'result': True}
我已经运行salt minion saltutil.sync_all
,已经看到了我添加的模块的输出。我可以看到它也在minion日志中同步。
minion:
- modules.foomod
1。我可以从小兵那里使用它:
$ salt-call foomod.foo
local:
----------
name:
foo
result:
True
2. 我可以使用module.run
将其包含在状态中并运行状态,它也可以。
3。但是当我从主人那里召唤它时,会发生这种情况:
$ salt minion foomod.foo
minion:
- 'foomod.foo' is not available.
当我从主人
打电话时,我也看到了对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
所以要么我跳过了我直接从master运行它的部分,或者我想象了一个不存在的功能。
感谢任何帮助。
答案 0 :(得分:2)
回答自己的问题。 Salt master有pycrypto==2.6.1
而minion有pycrypto==2.4.1
。在minion上更新它解决了它。