为了账号安全,请及时绑定邮箱和手机立即绑定

使用 AWS Go 开发工具包的动态清单

使用 AWS Go 开发工具包的动态清单

Go
PIPIONE 2022-05-18 16:56:44
如此处所述,如果您使用的是云提供商,则不应在静态文件中管理您的库存。而是使用动态库存Ansible 文档仅将 python boto sdk 提供为动态库存,如此处所示。     ansible -i ec2.py -u ubuntu us-east-1d -m pingansible 是否允许(-i)执行使用 AWS Go sdk 编写的动态清单?而不是 python boto sdk。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

是的,ansible 将使用任何可以产生必要的 JSON 输出的命令,包括一个 shell 脚本,如精美手册所指定:


在以前的版本中,您必须创建一个脚本或程序,以便在使用正确的参数调用时以正确的格式输出 JSON。您仍然可以使用和编写清单脚本,因为我们通过脚本清单插件确保了向后兼容性,并且对使用的编程语言没有限制。


作为一个具体的 golang 示例:


package main

import (

    "encoding/json"

    "fmt"

)

func main() {

    i := map[string]interface{}{

        "_meta": map[string]interface{}{

            "hostvars": map[string]interface{}{

                "example.host": map[string]interface{}{

                    "ansible_host": "127.0.0.1",

                    "ansible_user": "ubuntu",

                },

            },

        },

        "all": map[string]interface{}{

            "children": []string{"ungrouped"},

        },

        "ungrouped": map[string]interface{}{

            "hosts": []string{"example.host"},

        },

    }

    ba, err := json.Marshal(i)

    if err != nil { panic(err) }

    fmt.Println(string(ba))

}

通过通常的机制调用:


go build -o sample-inv ./main.go

ansible -i ./sample-inv -m ping all


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信