2016-07-15 87 views
0

我正在写我自己的模块到可信和部分代码不能在python中,因为我正在处理的软件没有python api。它支持groovy,所以我包含一个groovy脚本,但在模块目录中,但是当我运行模块时,我注意到ansible会将模块中的所有python文件复制到/ tmp/ansible _ {{some_random_character}}。然而,ansible不包括我的groovy脚本,所以当我尝试运行模块时崩溃,因为它找不到groovy脚本。有什么方法可以告诉可以将所有文件包含在模块目录中,而不仅仅是Python文件?包含没有python文件到模块

外观模块目录现在这个样子

模块

__init__.py 
    deploy.groovy 
    deploy.py 

代码示例(如果有更好的方式来做到这一点)

pathname = os.path.dirname(sys.argv[0]) 
p = subprocess.Popen("groovy " + pathname + "/deploy.groovy ") 

回答

1

Developing Modules

模块必须自包含在一个文件中才能被自动传输。

为什么不使用groovy脚本作为模块?

groovy_module到库目录:

#!/usr/bin/groovy 

// Groovy code goes here 
println "{\"hello\":\"world\"}" 

从你的剧本叫:

tasks: 
    - groovy_module: 

确保常规安装在目标机器上。