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

如此处所述,如果您使用的是云提供商,则不应在静态文件中管理您的库存。而是使用动态库存


Ansible 文档仅将 python boto sdk 提供为动态库存,如此处所示

     ansible -i ec2.py -u ubuntu us-east-1d -m ping

ansible 是否允许(-i)执行使用 AWS Go sdk 编写的动态清单?而不是 python boto sdk。


PIPIONE
浏览 114回答 1
1回答

绝地无双

是的,ansible 将使用任何可以产生必要的 JSON 输出的命令,包括一个 shell 脚本,如精美手册所指定:在以前的版本中,您必须创建一个脚本或程序,以便在使用正确的参数调用时以正确的格式输出 JSON。您仍然可以使用和编写清单脚本,因为我们通过脚本清单插件确保了向后兼容性,并且对使用的编程语言没有限制。作为一个具体的 golang 示例:package mainimport (    "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.goansible -i ./sample-inv -m ping all
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go