【发布时间】:2014-08-04 16:20:58
【问题描述】:
我写了一个简单的模块,把文件放在<salt_file_roots>/_modules下,内容差不多:
# foomod.py
def foo(*args):
return {'name': 'foo', 'result': True}
我运行了salt minion saltutil.sync_all,看到了我添加的模块的输出。我可以看到它也在 minion log 中同步。
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.
当我从 master 调用时,我也会在 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 运行的部分,要么我想象了一个不存在的功能。
感谢任何帮助。
【问题讨论】:
-
您使用的是什么版本的 Salt? “salt minion test.versions_report”和“salt-master --versions-report”的输出会很有帮助。
-
这将我引向正确的方向,
pycrypto在 minion 上年龄较大。
标签: python salt-stack