【问题标题】:Does ansible support modules written in Go?ansible 是否支持用 Go 编写的模块?
【发布时间】:2020-03-06 17:43:12
【问题描述】:

Ansible 支持用 Python 编写的自定义模块。

对于本地的执行类型(本地意味着connection: local & hosts: localhost),每次播放都将ssh 的python 包ansible 到远程节点。


  1. ansible 是否支持在 Go 中编写模块?

  2. 如果是,这些模块可以是远程执行类型吗?因为 Go 工件是二进制工件。

【问题讨论】:

  • github.com/vrutkovs/golang-modules-in-ansible

标签: go ansible ansible-2.x ansible-template ansible-role


【解决方案1】:

任务是使用模块实现的。大多数模块都是用 Python 编写的,但如果您愿意,也可以使用其他语言。

来自Building A Simple Module 指南,它指出:

我们将在这里使用 Python,但任何语言都可以。仅需要文件 I/O 和输出到标准输出。所以,bash、C++、clojure、Python、Ruby,随便你都可以。

【讨论】:

    【解决方案2】:

    是的,您可以在 Go 中编写 Ansible 模块并在远程主机上运行二进制文件。每Get Yourself GOing with Ansible

    至少有四种不同的方式可以运行 Go 程序 来自 Ansible。您可以:

    1. 安装 Go 并使用 Ansible 中的 go run 命令运行您的 Go 代码。
    2. 在执行之前为不同平台交叉编译您的 Go 代码。然后从 Ansible 调用正确的二进制文件,基于 您从主持人那里收集到的事实。
    3. 从具有 containers.podman 集合的容器运行您的 Go 代码或编译的二进制文件。
    4. 使用 NFPM 之类的东西创建 Go 代码的 RPM 包,并将其安装在目标主机的系统中。然后你可以调用它 Ansible 模块外壳或命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      相关资源
      最近更新 更多