【问题标题】:Include none python files to module不包含任何 python 文件到模块
【发布时间】:2016-07-15 13:43:40
【问题描述】:

我正在编写我自己的模块到 ansible 并且部分代码不能在 python 中,因为我正在使用的软件没有 python api。它确实支持 groovy,所以我在模块目录中包含了一个 groovy 脚本,但是当我运行模块时,我注意到 ansible 将模块中的所有 python 文件复制到 /tmp/ansible_{{ some_random_character }}。但是 ansible 不包含我的 groovy 脚本,所以当我尝试运行该模块时它会崩溃,因为它找不到 groovy 脚本。有没有办法告诉ansible包含模块目录中的所有文件而不仅仅是python文件?

模块目录现在是这样的

模块

  __init__.py
  deploy.groovy
  deploy.py

代码示例(如果有更好的方法)

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

【问题讨论】:

    标签: python ansible


    【解决方案1】:

    来自Developing Modules

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

    为什么不使用 groovy-script 作为模块?

    groovy_module放入库目录:

    #!/usr/bin/groovy
    
    // Groovy code goes here
    println "{\"hello\":\"world\"}"
    

    并从您的剧本中调用:

      tasks:
        - groovy_module:
    

    确保在目标机器上安装了 groovy。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 2017-11-04
      • 2020-03-30
      • 1970-01-01
      相关资源
      最近更新 更多