我正在将perl / bash工具转换为salt模块,我想知道如何将此模块的非python部分同步到我的minions。
我想运行salt agent-less,理想情况下,一旦通过salt-ssh调用,依赖项将自动与模块本身同步。
但似乎只有python脚本才能同步。想要一个漂亮而干净的解决方案吗?
在模块执行期间从salt文件服务器复制必要的文件对我来说似乎有点不对..
答案 0 :(得分:2)
仅支持python扩展,因此最好的办法是执行以下操作:
1)通过file.managed
/ file.recurse
州部署非Python组件。
2)确保您的自定义执行模块有__virtual__()
函数检查是否存在非Python依赖项,如果它们不存在则返回False
。除非存在deps,否则这将使模块无法加载和使用。
3)使用saltutil.sync_modules
同步您的自定义模块。此函数还将重新调用加载程序以更新minion上的可用执行模块,因此如果您已经同步了自定义模块并稍后部署了非Python依赖项,saltutil.sync_modules
将重新加载自定义模块,如果您的__virtual__()
函数返回True
或所需的模块名称,那么您的执行模块将可供使用。